A. c語言指針輸入輸出

不允許直接將字元串賦予指針!
比如char
*p;
sancf("%s",p);錯誤
正確
char
*p="dadasd"在聲明時就賦值
char
*p;
p="sdadsa"
聲明後賦值
char
a[10],*p=a;
scanf("%s",p);
正確,專這是最常用方屬法

B. c語言指針輸入

看來樓主沒有理解指針必須要初始化這一定律啊。
char *str;
str="l love china";
指針 str 是指向字元的,也就是指向了一個地址
賦值為str="l love china" 這里指針str的值也就是字元串 "l love china" 的首地址
而輸出的時候puts(str); puts中的參數當然也是首地址了,如果puts的參數是字元數組,那實際上也是地址,因為數組的名字就是數組第一個元素的地址。當地址是字元串的地址時,指針會自動下移一個位置。直到遇到'\0'為止
而下面這個
char *str;
scanf("%s",str);
指針沒有初始化,所以是不對滴。

其實在C語言中想要動態輸入字元串(也就是不浪費空間,還是很麻煩的),直到怎麼回事就行,不必太糾結這個問題

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

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

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

D. 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;

}

(4)c語言指針輸入擴展閱讀:

字元指針注意事項:

在字元指針中p是指針變數指向字元串首元素(前提對p指針沒有進行指針操作),p中存放首元素的地址(一旦被初始化就,系統就為我們分配好了地址,而且地址也不能改變,因為字元指針是一個只讀變數,不能企圖對一個初始化好的指針進行內部修改)

而*p是對指針變數p進行解引用操作,也就是指針所指向的內容,而&p是對指針變數取地址,所以也就肯定不會和p的值相等,因為字元指針系統會為其分配內存,p的值是字元串首元素的地址。

E. c語言 指針輸入

你定義了一個指針s,卻不讓他指向什麼,scanf("%d",s+i);當人會有問題
#include

int
main()
{
int
a,b,i;
int
*s;
int
p[8];
s
=
p;
for(i=0;i<8;i++)
scanf("%d",s+i);
for(i=0,a=1;i<7;i++)
{
a=i+1;
for(;a<8;a++)
if
(*(s+i)<*(s+a))
{b=*(s+i);*(s+i)=*(s+a);*(s+a)=b;}
}
for(i=0;i<8;i++)
printf("%d",*(s+i));
return
0;
}
指針一定要指向一個地址

F. C語言 指針與scanf

首先你只要明白scanf語句中要傳的是地址就可以,具體的底層實現你不用管。
關於指針專,屬你要知道一個指針類型的變數指向的是一個地址,比如定義一個指針,指向你家的地址,不管你家的房子怎麼裝修,我只要照著我的地址去找還是能找到你這個房子,假如我修改了這個地址指向的變數,也就是我把你家地址上的建築給改變了,那你家的房子當然就變了。
如果你不好理解的話就記住,『*』和『&』這兩個符號假如緊挨著就抵消,其中一個符號移動到『=』的另一邊就變成另一個符號。舉個例子*(&a)其實就是a,*p = a其實就是p = &a。這個小技巧只適合做選擇題什麼的,底層實現並不是這樣。
然後題中,p是一個指向long類型的指針,a是一個long類型變數。
先看A,*p是一個long類型變數,&a是地址,不能把地址賦給變數,A錯。
再看B,malloc分配了一個8位元組的空間,然後轉換成指向long類型的指針,然後讓p指向這塊內存,然後p很顯然是一個地址,scanf里傳的就是地址,所以B對。
再看C,p=&a的結果就是p,是一個地址類型,C對。
最後看D,&a是地址類型,D對。
然後這個題是選不正確的,那答案就是A。

G. C語言函數用指針輸入數組元素,對嗎

如下提示供參考:

int ddata[20]是 scanfArr函數內部定義的,是局部變數,上面 arr = ddata,導致scanf輸入的數組元素會保存到內 局部變數 數組中,並容無意義。

從問題描述,提供以下代碼供參考:

#include<stdio.h>

voidscanfArr(int*arr,intn)
{
inti;
printf("請輸入5個數(以回車鍵結束): ");
for(i=0;i<n;i++,arr++)
scanf("%d",arr);
}

voidmain()
{
inti,ddata[5];
scanfArr(ddata,5);

printf("輸入的數組如下: ");
for(i=0;i<5;i++)
{
printf("[%d]:%d ",i,ddata[i]);
}
}

運行截圖:

H. C語言指針字元輸入輸出

#include"stdio.h"
#include"stdlib.h"
intmain()
{
char*string=(char*)malloc(sizeof(char)*100);
scanf_s("%s",string,100);
printf("%s ",string);
return0;
}

I. c語言 用指針實現一組數據的數據輸入與輸出

#include<stdio.h>
main()
{
int a[6],i;
int *p;//p沒有定義怎復么能夠使用呢制?p為指針
for(i=0;i<6;i++)//for之後怎麼是{ },應是();還有沒有等於,否則會指針越界
scanf("%d",&a[i]);//此處丟了一個&(求地址)
p=a;
/*
for(i=0;i<=6;i++)此處與下面的語句沒有聯系,按照你的寫法,會輸出7次a[0];
*/
for(i=0;i<6;p++,i++)
printf("%3d",*p);//居然丟了一個*,太粗心
printf("\n");
}

修改版已經在上面,你自己好好看一下吧!不懂可以問我!

J. C語言輸入字元型指針數組怎麼輸

*p[10],具有10個字元指針復的數組,先要存制在具體地址,否則是野指針,發生錯誤

#include "stdio.h"
#include "stdlib.h"
main()
{
char *p[10],*temp;
int i,j,k;

for(i=0;i<10;i++)
{
p[i]=(char*)malloc(sizeof(char)*50);//開辟內存
}
for(i=0;i<10;i++)
{
printf("輸入第%d本書的書名\n",i+1);
gets(p[i]);
}

for(i=0;i<10;i++)
{
printf("%s\n",p[i]);
}
}