『壹』 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'
『貳』 c語言指針輸出地址,內容和位元組數
#include<stdio.h>
void main() { int a,*p;
p=&a; a=5;
printf("指針地址:%x\n",p);
printf("指針指向內容:%d\n",*p);
printf("指針變數位元組數:%d\n",sizeof(p));
}
『叄』 c語言中如何借用指針輸出字元串
使用指針輸出字元串有以下幾種方式:
1、使用printf 函數進行輸出,其使用的格式轉換符為%s,如
char*str="test";//指針指向一個字元串
printf("%s ",str);//輸出str指向的字元串
2、使用puts函數進行輸出,如
char*str="test";
puts(str);//輸出str指向的字元串,會自動多輸出一個換行
3、使用自定義函數進行輸出,如
voidmyPuts(char*str)//自定義輸出函數
{
if(!str)return;
while(*str!='