本文目錄一覽:
- 1、c語言指針與字元數組?
- 2、c語言指針變數引用數組
- 3、c語言裡面怎麼用指針表示二維字元數組
- 4、C語言中如果將一個指針所指向的字元串賦給數組?
- 5、c語言中要用什麼引用字元串數組裡的字元串?
- 6、c語言中如何借用指針輸出字元串?
c語言指針與字元數組?
這個時候s指向字元串的第一個字元的地址,所以屏幕上輸出的是d。
s+1後,p指針的地址直接跳到了字元串的最後’\0’,這個時候屏幕上輸出是’\0’。
注意這個位置的標誌。(p-2)是常量,不是變數。因為字元串在前面定義的常量。屏幕上的輸出h。並且在d與h之間有一個空白,因為前面輸出一個字元’\0’。
c語言指針變數引用數組
“i love china!”
“i am a student!”
這兩個都是常量字元串,存儲在 靜態存儲區 ,不容修改。
c語言裡面怎麼用指針表示二維字元數組
二維數組就是數組的數組,二維數組即數組的元素是一維數組的數組。那麼我們要用指針指向二維數組,就是要定義一個指向數組的指針了。例如:
char str[3][10]; //定義了一個char型的二維數組
char (*pstr)[10]; //定義了一個指向char型的數組指針
pstr=str; //指針指向二維數組str
下面用pstr這個指針對二維數組進行賦值操作
int i;
for(i=0;i3;i++)
scanf(“%s”,*(p+i)); //*(p+i)等價於str[i]
C語言中如果將一個指針所指向的字元串賦給數組?
數組聲明的時候就要指定大小的
可以用memcpy,對於字元串,也可以用strcpy或strncpy(需要包含string.h)
比如:
char
*p=”abc”;
char
a[10];
memcpy(a,p,sizeof(a));
或者
strcpy(a,p);
或者
strncpy(a,p,sizeof(a));/*
比上面的strcpy安全
*/
PS:關於sizeof,取數組的時候是數組的大小,指針的話,32位機器,會是4,所以字元串指針不用sizeof取長度,用strlen();
c語言中要用什麼引用字元串數組裡的字元串?
找到這個數組的地址你就可以操作他了
在你定義的時候 數組名就是這個數組的首地址 你可以直接使用數組名來操作這個數組
char str[]=”hgff”;
puts(str);//用數組名輸出數組 注意 必須是字元串
也可以定義一個指針指向這個數組的地址 然後通過指針操作數組
char *p;
p=str;//指針p指向數組str
gets(p);//輸入字元串存儲在str數組裡面
c語言中如何借用指針輸出字元串?
使用指針輸出字元串有以下幾種方式:
1、使用printf 函數進行輸出,其使用的格式轉換符為%s,如
char *str = “test”;//指針指向一個字元串
printf (“%s\n”, str);//輸出str指向的字元串
2、使用puts函數進行輸出,如
char *str = “test”;
puts(str);//輸出str指向的字元串,會自動多輸出一個換行
3、使用自定義函數進行輸出,如
void myPuts(char *str)//自定義輸出函數
{
if (!str)return ;
while (*str != ‘\0’){
putchar(*str);
str++;
}
}
char *str = “test”;
myPuts(str);
擴展資料:
C++指針與字元串
1、C語言里沒有字元串數據類型,要想獲得字元串的表示形式利用字元數組
#includeiostream
using namespace std;
#includestdlib.h
void main()
{
char ar[]={‘a’,’b’,’c’,’d’};
coutar; //字元串後無結束符\0,會有多餘列印
coutendl;
char br[]={‘a’,’b’,’c’,’d’,’\0′};
coutbr;
coutendl;
char cr[5]=”abcd”; //字元串結尾默認隱藏了\0
coutcr;
system(“PAUSE”);
}
2、C語言里沒有字元串數據類型,要想獲得字元串的表示形式利用字元指針
#includeiostream
using namespace std;
#includestdlib.h
void main()
{
char *p=”hello world”;
coutp;
//整形的指針,列印指針時只能列印其內部地址
//字元指針,列印指針時也是地址,但是這個被看作字元指針後,會列印該指針指向地址內存放的字元串,列印直到遇到\0為止
system(“PAUSE”);
}
3、靜態常量區的字元串存儲及指針訪問
#includeiostream
using namespace std;
#includestdlib.h
#includestring.h
void main()
{
char *p=”hello world”; //hello world存放在內存的靜態常量區
//指針變數p存儲的是該靜態常量區的首個字元地址
//不能通過指針修改靜態常量區的字元,但是可以通過指針訪問
int length=strlen(p);
//strlen計算的是字元串p的有效長度,不算\0
for(int i=0;ilength;++i)
{
coutp[i];
}
system(“PAUSE”);
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/187034.html