c語言中的字元指針
Ⅰ c語言字元串指針
數組是指一段連續的存儲空間,數組名是其開始的地方,string是指針變數,指向字元串數組,亦即是其首地址,printf("%s",string);輸出的是從首地址開始往後存儲空間內的東西,直至'\0'結束。
Ⅱ c語言字元串指針
字元串指針與字元串數組一樣是有長度的哦。
Ⅲ C語言字元指針怎麼輸入謝謝
可以參考下面的代碼:
#include <stdio.h>
#include <string.h> // 要用尖括弧
intmain()
{
char*str;
str = (char*)malloc(sizeof(char) * 20); // 申請20個char長度的空間
scanf("%s", str); //輸入
printf("%s ", str); // 輸出
free(str); // 釋放空間
return0;
}
(3)c語言中的字元指針擴展閱讀:
字元指針注意事項:
在字元指針中p是指針變數指向字元串首元素(前提對p指針沒有進行指針操作),p中存放首元素的地址(一旦被初始化就,系統就為我們分配好了地址,而且地址也不能改變,因為字元指針是一個只讀變數,不能企圖對一個初始化好的指針進行內部修改)
而*p是對指針變數p進行解引用操作,也就是指針所指向的內容,而&p是對指針變數取地址,所以也就肯定不會和p的值相等,因為字元指針系統會為其分配內存,p的值是字元串首元素的地址。
Ⅳ 關於C語言的字元串指針的問題
如果輸入12345,那麼p指向1,即p中存放著1的地址。沒有字元串的指針和指針指向的內容不能修改一說。無論什麼類型的指針,只要是「常指針」就有三種情況不可改變:
指針是常量——這個指針只能指向申明時指向的目標,不能指向別處。
指向的內容是常量——不能通過這個指針改變指向的內容,但指針可以指向別處,也可以通過其他方法改變該指針指向的內容。
指針和指向的內容都是常量——這時指針不能再指向別處,它指向的內容也不可通過這個指針修改(用其他方法修改內容仍然是可以的)。
數組名是常量指針,所以指針不能再指向別處(即改變指向)。
這個問題中,p是普通指針,所以可以改變指向;p指向的內容是由malloc申請的自由空間,所以它們的內容肯定是能夠改變的,否則申請這個空間就沒有多少意義了。