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

c語言指針定義字元串怎麼賦值

發布時間: 2023-08-23 07:28:37

『壹』 c語言指針的賦值問題

指針在用要注意初始化,例如:

int *p;

p為指針,地址是未知的,如果直接賦值

*p=a;這樣編譯可以通過,但是會產生警告,p的地址是隨機分配的,這樣對未知的地址賦值很危險,可能會覆蓋掉某些重要數據,所以避免這種危險,在定義指針時注意初始化,也就是賦值。

可以int *p=&a;

或者int *p;

p=&a;

然後再對p進行操作

有錯。

注意大小寫,還有

int a=9;

int *p;

p=&a;//這個是指針指向a

*p=8;

這樣就對了。

(1)c語言指針定義字元串怎麼賦值擴展閱讀:

指針的賦值

int *p;

int a;

int b[1];

p = &a;

p = b;

指針的賦值,「=」的左操作數能夠是*p,也能夠是p。

當「=」的左操作數是*p時,改變的是p所指向的地址存放的數據;

當「=」的左操作數是p時,改變的是p所指向的地址。

數組的變數名b表示該數組的首地址,因此p=b;也是正確的

同類型的指針賦值:

int val1 = 18,val2 = 19;

int *p1,*p2;

p1 = &val1;

p2 = &val2;

p1 = p2; //注意啦,p1指向了val2,而沒有指向val1

備註:字元串與指針的初始化和賦值

初始化:

char *cp = "abcdefg"; //這個初始化過程,是將指針cp指向字元串的首地址,而並非傳遞字元串的值。由於,在C語言裡面,沒有總體處理一個字元串的機制

賦值:

cp = "abcdefg";

*cp=」abcdefg」 ;//錯誤!字元串常量傳遞的是它的首地址,不能夠通過*cp改動該字元串的值,由於該字元串為常量,而它僅僅是簡單的將指針指向該字元串常量。

『貳』 C語言如何把指針指向的值賦值到變數上。。。

str1是個常量指針,不能對他進行賦值操作, 用也應該寫成p=str1; 另外初始化的話一般是char* p=NULL; 或者char* p; p=NULL;

『叄』 C語言怎樣給字元數組賦值

1、單字元賦值,可通過數組下標方式或指針方式,引用數組元素,進行賦值。

例子:

char a[10];

char ch='a';

for( i=0;i<10;i++ )

a[i]=ch+i ; //可通過數組下標引用數組元素,完成賦值

char *p;

for( p=a; p<a+10; p++ )

*p=ch++; //通過指針對數組相應元素賦

2、字元串賦值,可使用string.h頭文件中的字元串操作函數進行賦值。

例子:

char a[10];

strcpy( a, "abcdefgh");

sprintf(a, "%s", "abcdefgh");

(3)c語言指針定義字元串怎麼賦值擴展閱讀:

C語言給字元數組賦值的優點:

1、簡潔緊湊、靈活方便

C語言一共只有32個關鍵字,9種控制語句,程序書寫形式自由,區分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。

2、運算符豐富

C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。

『肆』 請問C語言 char類型的指針要怎麼賦值

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *source = malloc(20*sizeof(char);
printf("Please input source \n");
scanf("%s",source);//f方法三
printf("%s\n",source);
char *temp = "my input source"
sprintf(source,"%s",temp);//方法一
printf("%s\n",source);
strcpy(source,temp);//方法二
printf("%s\n",source);
return 0 ;
}
指針是無法存放字元串的,只有指針指向的那塊空間才能存放字元串,所以我第一句話給它開辟了20個空間,這樣就可以給指針指向的那塊空間賦值了,謝謝
另外給你一個建議 char *a = NULL,*b =NULL,*c =NULL;這樣的寫法是不規范的,很容易出錯。標准形式應該是char *a= NULL;
char *b = NULL;
char *c = NULL;

『伍』 C語言指針怎麼賦值呢

要改p–>a的值,和在這個函數裡面是一樣的
直接
p–>a=要賦值的值
這樣就可以了
唯一需要注意的就是要賦值的是結構體指針還是結構體變數,如果不是指針那就要改成點了
p.a這樣

『陸』 C字元串賦值

字元串不能這樣賦值
*str其實和str[0]是等效的
另外str是數組,所以這個指針是常量,所以也不能使用類似str="asdf";的方式進行賦值。
你可以用<string.h>中的strcpy()函數,該函數會自動添加\0

#include<stdio.h>

main()
{
char str[40];
strcpy(str,"aldkjflakdsjfalkfj");
puts(str);
}