當前位置:首頁 » 編程語言 » c語言指針ab
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言指針ab

發布時間: 2022-02-05 14:39:49

❶ 怎麼理解c語言指針中 *a=*b

你好!!!

首先我們已經知道:a,b,都是指針變數,*a表示指針變數所指向的值,同樣*b也是如此。*a=*b就是表示把指針b所指向的值賦值給指針變數a所指向的值。

但是要是指針a要是沒有初始化或是開辟空間的話,這樣賦值就有危險!!!
例如:
int *a;
int *b=5;
*a=*b;
首先聲明一個指針變數a,但是系統並沒有為其分配空間,也就是說此時指針變數的值即地址不確定的,那麼*a也就表示一個不確定的值,有可能這個值是系統的重要數據,那麼*a=*b;不就修改了系統的數據了嗎???也就變數的危險了。
所以聲明指針變數的時候一定注意初始化。

❷ c語言 中'ab'的值

a的ASCII碼是10進制的97,16進制的61,b的ASCII碼是10進制的98,16進制的62,順序寫到一起是16進制的6162,轉換為10進制就是24930。
'ab'佔用2個位元組(字面上是這樣),賦給int類型變數在某些編譯器(如Dev-C++)中是可能的,但沒有推廣價值,也米有應用價值,所以這也不會出現在考試、或者筆試題目中。

❸ C語言,指針題。第一個答案是abABC,怎麼解釋。為什麼後面的沒了謝謝。

因為strcpy的時候會見「ABC」後默認的'\0'也拷貝的,而且%s類型輸出的時候只認'\0',所以會是abABC,s[6]為g是因為在定址的時候會默認向後找的

❹ C語言中指針a=b與*a=*b有什麼區別

a=b就是把b的地址賦給a
*a=*b就是把b的內存地址對應的值給a

❺ C語言問題,輸入ab兩個整數按順序輸出。用指針做。

使用指針把變數交換
如:
int t;
if(*p1>*p2){
t=*p1;
*p1=*p2;
*p2=t;
}
指針交換
int *pt;
if(*p1>*p2){
pt=p1;
p1=p2;
p2=pt;
}

❻ C語言ab+方式打開文件以及fseek函數

打開文件可以用fopen。
函數原型:FILE * fopen(const char * path,const char * mode);
返回值:文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno中。
一般而言,打開文件後會做一些文件讀取或寫入的動作,若打開文件失敗,接下來的讀寫動作也無法順利進行,所以一般在fopen()後作錯誤判斷及處理。
打開文件實例:
#include<stdio.h>
#define F_PATH "d:\\myfile\\file.dat"
int main(void)
{
FILE*fp=NULL;//需要注意
fp=fopen(F_PATH,"ab+");
if(NULL==fp)
{
return -1;//要返回錯誤代碼
}
fclose(fp);
fp=NULL;//需要指向空,否則會指向原打開文件地址

return 0;
}
fseek函數功能:重定位流(數據流/文件)上的文件內部位置指針
注意:文件指針指向文件/流。位置指針指向文件內部的位元組位置,隨著文件的讀取會移動,文件指針如果不重新賦值將不會改變指向別的文件
int fseek(FILE *stream, long offset, int fromwhere);
參數:stream 文件指針,fromwhere起始基準點,offset在基準點的基礎上的偏移量。
返回值:成功,返回0,失敗返回-1,並設置errno的值,可以用perror()函數輸出錯誤。
實例:
#include <stdio.h>
long filesize(FILE*stream);
int main(void)
{
FILE *stream;
stream=fopen("MYFILE.TXT","w+");
fprintf(stream,"Thisisatest");
printf("FilesizeofMYFILE.TXTis%ldbytes\n",filesize(stream));
fclose(stream);
return 0;
}

long filesize(FILE*stream)
{
long curpos,length;
curpos=ftell(stream);
fseek(stream,0L,SEEK_END);
length=ftell(stream);
fseek(stream,curpos,SEEK_SET);
return length;
}

❼ C語言用指針編程,如圖輸出為abcdr,請大神幫忙

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

intmain(intargc,char*argv[])
{
chara[10]={''};
charb[10]={''};
chars[20]={''};
inta_len,b_len,i=0,j=0,pos=0;
scanf("%s",a);
fflush(stdin);
scanf("%s",b);
a_len=strlen(a);
b_len=strlen(b);
while(1)
{
if(a[i]>b[j])
{
s[pos++]=b[j++];
}
else
{
s[pos++]=a[i++];
}
if(a[i]==''&&b[j]!='')
{
for(j;j<b_len;j++)
{
s[pos++]=b[j];
}
break;
}
elseif(a[i]!=''&&b[j]=='')
{
for(i;i<a_len;i++)
{
s[pos++]=a[i];
}
break;
}
elseif(a[i]==''&&b[j]=='')
{
break;
}
}
s[pos]='';
printf(" %s",s);
return0;
}

❽ C語言調用函數互換ab,為什麼要用指針。不用指針能行嗎注意,是調用函數。

這是 C 語言 本身 特性 規定了 的。你只要記住 這點: 形參 必須用指針,這樣才能把 通過 函數加工 後的 數值 帶回來。通過函數 互換後 的a,b,才能被帶回。
至於「為什麼」,可以不去追究,它的理由 無非 是什麼 地址啦,值啦之類,時間長了,自己會記混淆。
其它語言,例如 fortran 語言,不管形參是什麼花樣,都能帶回。

❾ c語言 指針的傳遞

如果你輸出printf("%d %d", *x, *y); 結果就是6,3了
由於a和b沒變,所以printf("%d %d", a, b);還是3,6

❿ c語言 為何這個函數能互換ab的值

這是指針參數的特點,改變的是其指向的地址的值。

你就可以相像一下:
給了hx(...)一共a, b兩個盒子,可以換裡面的東西,但無論怎麼樣,a盒子還是a盒子,b盒子還是b盒子。