The assignment to y within square changes only a copy of the actual ar dịch - The assignment to y within square changes only a copy of the actual ar Việt làm thế nào để nói

The assignment to y within square c

The assignment to y within square changes only a copy of the actual argument.
Called functions can change the caller’s data only if the data are independently visi-ble to the function (say, in a global variable) or if the caller passes a pointer to the data as an argument to the function. When a pointer is passed, the pointer is copied, but the object pointed to is not copied. Therefore, changes made indirectly through the pointer can be seen by the caller.
Example
The function swap below exchanges the values of two integer objects when pointers to those objects are supplied as parameters:
void swap(int *xp, int *yp)
{
int t ■ *xp?
*xp = *yp;
*yp = t;
}
If a is an integer array all of whose elements are 0, and i is an integer variable with the value 4, then after the call swap (&a [i] , &i), i will have the value 0 and a [4] will have the value 4.
Formal and actual arguments of array types are always converted to pointers by C. Therefore, changes to an array formal parameter in a function will affect the actual argu¬ment, although it might not seem obvious that this is so.
Example
Consider the following function f which has an array parameter:
void f(int a[10])
{
a[4] = 12; /* changes caller's array */
}
If vec is an integer array, then calling f (vec) will set vec [4 ] to 12. The dimension 10 in the array parameter has no significance a could have been declared int a [ ].
If a function whose return type is not void is called in a context where the value of the function would be discarded, a compiler could issue a warning to that effect. However, it is common for non-void functions like printf to have their return values discarded, and so many programmers think that such warnings are a nuisance.
Example
The intent to discard the result of the function call may be made explicit by using a cast, as in this call to s treat,:
(void) streattword, suffix);
Comma expressions may be arguments to functions if they are enclosed in parenthe-ses so that their parts are not interpreted as separate arguments.
Example
Suppose you wish to trace all calls to a function f in your C program. If f takes a single argu¬ment, then the following macro will insert calls to traeef before each call to f.
«define f(x) (traeef LIME ) , f ((x)))
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
Việc chuyển nhượng để y trong quảng trường thay đổi chỉ là một bản sao của các đối số thực tế.Chức năng được gọi là có thể thay đổi của người gọi dữ liệu chỉ khi các dữ liệu là một cách độc lập visi-ble để chức năng (nói, trong một biến toàn cầu) hoặc nếu người gọi đi một con trỏ đến dữ liệu như là đối số cho hàm. Khi một con trỏ được thông qua, con trỏ được sao chép, nhưng đối tượng chỉ để không được sao chép. Vì vậy, thay đổi thực hiện gián tiếp thông qua con trỏ có thể được nhìn thấy bởi người gọi.Ví dụTrao đổi chức năng dưới đây trao đổi các giá trị của hai số nguyên đối tượng khi con trỏ đến các đối tượng được cung cấp dưới dạng tham số:void trao đổi (int * xp, int * yp){int t ■ * xp?* xp = * yp;* yp = t;}Nếu một là một số nguyên mảng tất cả có các yếu tố là 0, và tôi là một biến nguyên với giá trị 4, sau đó sau khi trao đổi cuộc gọi (một [i], & tôi), tôi sẽ có giá trị 0 và một [4] sẽ có giá trị 4.Đối số chính thức và thực tế của mảng loại luôn luôn được chuyển đổi sang con trỏ của C. Do đó, các thay đổi vào một loạt các tham số chính thức trong một chức năng sẽ ảnh hưởng đến argu¬ment thực tế, mặc dù nó có thể không có vẻ rõ ràng rằng điều này là như vậy.Ví dụHãy xem xét hàm f sau đó có một tham số mảng:vô hiệu f (int a[10]){[4] = 12; / * thay đổi của người gọi mảng * /}Nếu vec là một loạt các số nguyên, sau đó gọi f (vec) sẽ thiết lập vec [4] đến 12. Kích thước 10 trong tham số mảng có ý nghĩa không có một có thể đã được tuyên bố int [] một.Nếu một chức năng mà loại trở lại không phải là vô hiệu được gọi là trong bối cảnh một nơi mà giá trị của các chức năng sẽ được loại bỏ, một trình biên dịch có thể phát hành một cảnh báo để có hiệu lực. Tuy nhiên, nó là phổ biến nhất-void chức năng như printf có giá trị trở lại của họ bị loại bỏ, và rất nhiều lập trình viên nghĩ rằng cảnh báo như vậy là một phiền toái.Ví dụMục đích để loại bỏ kết quả của cuộc gọi chức năng có thể được thực hiện rõ ràng bằng cách sử dụng một diễn viên, như trong cuộc gọi này để điều trị s:streattword (vô hiệu), hậu tố);Dấu phẩy biểu thức có thể là đối số chức năng nếu họ được đính kèm trong parenthe-ses để không phải là bộ phận của họ không được giải thích như là đối số riêng biệt.Ví dụGiả sử bạn muốn theo dõi tất cả các cuộc gọi đến một hàm f trong chương trình C của bạn. Nếu f mất một argu¬ment duy nhất, sau đó các vĩ mô sau sẽ chèn các cuộc gọi đến traeef trước khi mỗi cuộc gọi đến f.«xác định f (x) (traeef VÔI), f ((x)))
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
Việc chuyển nhượng để y bên trong thay đổi vuông chỉ có một bản sao của các đối số thực tế.
chức năng gọi là có thể thay đổi dữ liệu của người gọi nếu như dữ liệu là độc lập VISI-ble đến chức năng (ví dụ, trong một biến toàn cầu) hoặc nếu người gọi qua một con trỏ đến các dữ liệu như là một đối số cho hàm. Khi một con trỏ được thông qua, các con trỏ được sao chép, nhưng các đối tượng được trỏ tới không được sao chép. Do đó, những thay đổi được thực hiện gián tiếp thông qua các con trỏ có thể được nhìn thấy bởi người gọi.
Ví dụ
hoán đổi chức năng dưới đây trao đổi các giá trị của hai đối tượng số nguyên khi con trỏ đến các đối tượng được cung cấp như các thông số:
void swap (int * xp, int * yp)
{
int t ■ * xp?
* xp = * yp;
* yp = t;
}
Nếu a là một mảng số nguyên tất cả các phần tử của là 0, và tôi là một biến số nguyên với giá trị 4, sau đó khi hoán đổi cuộc gọi (& a [i ], & i), i sẽ có giá trị 0 và a [4] sẽ có giá trị 4.
lập luận chính thức và thực tế của các loại mảng luôn chuyển con trỏ bằng C. Do đó, thay đổi một tham số chính thức mảng trong một chức năng sẽ ảnh hưởng đến các argu¬ment thực tế, mặc dù nó không có vẻ rõ ràng rằng điều này là như vậy.
Ví dụ
xem xét các chức năng f sau đó có một tham số mảng:
void f (int a [10])
{
a [4] = 12; / * Thay đổi mảng của người gọi * /
}
Nếu vec là một mảng số nguyên, sau đó gọi f (vec) sẽ thiết lập vec [4] đến 12. Chiều 10 trong tham số mảng không có ý nghĩa một thể đã được khai báo int a [].
Nếu một hàm mà trả lại loại không phải là khoảng trống được gọi là trong một bối cảnh mà giá trị của hàm sẽ được loại bỏ, một trình biên dịch có thể đưa ra cảnh báo về việc đó. Tuy nhiên, nó được phổ biến cho các chức năng không là void như printf có giá trị trả lại của họ bỏ đi, và rất nhiều lập trình viên nghĩ rằng những cảnh báo như là một mối phiền toái.
Ví dụ
Mục đích để loại bỏ các kết quả của các cuộc gọi chức năng có thể được thực hiện rõ ràng bằng cách sử dụng một dàn diễn viên , như trong cuộc gọi này để điều trị s ,:
(void) streattword, hậu tố);
biểu Comma có thể đối số cho hàm nếu chúng được kèm theo trong parenthe-ses để các bộ phận của họ không được giải thích như là tham số riêng biệt.
Ví dụ
Giả sử bạn muốn theo dõi tất cả các cuộc gọi đến một hàm f trong chương trình C của bạn. Nếu f có một argu¬ment duy nhất, sau đó các macro sau sẽ chèn các cuộc gọi đến traeef trước mỗi cuộc gọi đến f.
«xác định f (x) (traeef LIME), f ((x)))
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2025 I Love Translation. All reserved.

E-mail: