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

c語言用指針做輸出

發布時間: 2023-04-27 18:05:30

1. c語言指針輸出

第一個函數在調用的時候 把main()中的兩個指向字元串的地址復制到形參裡面,你交換了形參的兩個地址,並沒有對地址指向的元素交換。這樣在子函數結束的時候,因為你只是把復制的兩個地址交換了,而真正main()中的 p、q 是沒有變的,所以跟沒調子函數一樣

而第二個是對地址指向的元素操作,不一樣的

2. C語言 怎麼用指針輸出一個二維數組的全部值

C語言的數組(不管多少維)在內存中都是線性儲存的。所以用一級指針加偏移就可以訪問所有元素。

舉個例子,有一個10*10的二維數組a,這樣就可以輸出:

inta[10][10];

int*p=(int*)a;
inti;

for(i=0;i<10*10;i++)
printf("%d",*(p+i));

3. C語言中變數指針輸出問題

假設字元串"this is a book"的地址分布如下:

值 地址
t 0030F8B0
h 0030F8B1
i 0030F8B2
... ...

此時有char *ps="this is a book"; 由於ps是char類型指針變數,它的指針域只能保存地址,我們知道"this is a book"是一個字元串數組且拿到了首元素的地址就可以找到它整個字元串,所以ps的指針域保存了首字元的地址即t的地址0030F8B0,而格式輸出符%s,就是輸出字元串之意,即從t開始輸出直至遇到\0符為止。

如果有printf("%c\n",*ps); 則取ps所指向的地址0030F8B0的值即字元t,換句說就是ps代表指針域即地址0030F8B0,再加上「*」就是取值的意思,合起來就是取地址0030F8B0的值即字元t.

4. c語言如何輸出指針所指向的值

需要准備的材料分別有:電腦、C語言編譯器。

1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。

5. C語言指針輸出數據問題

這就是規則,格式符%s的含義就是:把對應的值看做一個地址,按位元組讀取,然後輸出讀取到的值所對應的ASCII碼,直到碰到0為止
p1是個地址,假設p1的值是1000(也就是數組a的起始地址),那麼從1000開始依次讀取到HIKARI\0 然後輸出
如果是*p1 那麼*p1是'H','H'的ASCII值是72, 那麼printf("%s",*p1); 就是從地址72開始讀取,也就是printf("%s",72); 而地址72是不允許用戶程序操作的,會出錯。
再舉個例子:
int a = 4407873;
printf("%s", &a);
會輸出ABC 因為變數a內存空間的值按位元組看就是'A','B','C','\0'

6. 為什麼c語言用指針輸出字元串不用加*號

為什麼c語言用指針輸出字元串不用加*號?因為char*STR定義了一個char*字元指針STR,而STR指向了ILOVECHINA中的第一個字元I。
在cout流中有一個復制循環,它是一個具有數百個輸出STR點的字元串,在這個字元串中,STR被賦值給臨時指針,以便一個接一個地輸出。
然後*STR是一個字元,也就是I*是一個derecration,也就是STR指向的那個字元,所以*STR就是I這個不能被賦值或移位所以它不能被列印出來。
(6)c語言用指針做輸出擴展閱讀:
關於字元串指針
1.字元數組中存儲一個度字元串
Char字元串[]="LinuxC";
Printf("%s\n",字元串);
字元串是一個字元數組的名稱,它也是應答字元數組的第一個地址。
2.使用字元串指針指向一個字元串
如果你不想定義一個字元數組,你可以用一個指針指向一個字元串,稱為「字元串指針」,例如:
Char*p="LinuxC";
Printf(「%s\n」,p);
「LinuxC」是一個字元串常量。字元串常量的C語言:在內存中打開一個字元數組來存儲字元串常量,並將打開的字元數組的第一個地址保存到p。