title: FutureSex/LoveSounds

text: While in the studio, Timbaland played on the stereo plenty of songs by American singer and musician Prince for them to listen to. Early in their sessions, they reportedly were "fooling around" and "freestyling". One night, Danja was playing a guitar riff and caught the attention of Timberlake, who then started humming to the melody and later sung the lyrics. Timbaland, who was at their side, added drums onto the progressing sound. After an hour, with no lyrics written on paper, Timberlake recorded in the vocal booth a song that would become "What Goes Around... Comes Around". Timberlake, having been teased by Timbaland, said to the latter: "Let's do something we would never do. Let's go far left and just see what happens."


title: FutureSex/LoveSounds

text: Official production for "FutureSex/LoveSounds" started in December 2005. When production began, Jive Records Chairman and CEO, Barry Weiss, asked when the album would be completed, to which Timberlake replied that it could possibly take a year. The title was not finalized until Jive Records gave Timberlake a deadline on finishing what would become "FutureSex/LoveSounds". The collective thought the album is comparable with Michael Jackson's landmark record, "Thriller", dubbing their own as "Thriller 2006".


title: FutureSex/LoveSounds

text: According to Timberlake, "FutureSex/LoveSounds" is like a "fashion editorial, YSL and Gucci suits, which goes with the sonics". The album's artworks were shot by American fashion photographer Terry Richardson. The cover features Timberlake stomping a disco ball using his black pointy shoe.


title: FutureSex/LoveSounds

text: For his new project, Timberlake collaborated with only few producers. With no concrete plans, however, Timberlake's goal for the album was "'to capture moments' with a vivid, raw, off-the-cuff sound". Timberlake, who included record production in his repertoire, managed the recording sessions with no formula. His sessions with Timbaland and Danja were described as free-flowing, and he referred to themselves in the process as "looking like [mad men], a mad scientist".


title: FutureSex/LoveSounds

text: On his collaboration with Timbaland, Timberlake asserted that they "have a very interesting connection" in music. In ten days, they composed at least eight to ten songs with the lyrics, melodies, and vocals all in place. In three weeks, after that transitional moment with "What Goes Around... Comes Around", the collective was able to produce songs like "My Love", "SexyBack", and "Sexy Ladies". Unlike "Justified" which was recorded in six weeks, Timberlake said that "FutureSex/LoveSounds" took one year to complete.


title: FutureSex/LoveSounds

text: Sessions for the album also saw Timberlake collaborating with Rick Rubin and will.i.am, the latter himself a member of the hip hop group The Black Eyed Peas, whose 2003 single "Where Is the Love?" Timberlake lent vocals to. For the production, they are credited as Jawbreakers, a production team of their own established during their collaboration for The Black Eyed Peas' album. Four songs were produced with will.i.am, although only "Damn Girl" made it to the standard edition of the album.


title: FutureSex/LoveSounds

text: Actor Chris Rock recommended producer Rubin to Timberlake, who considered the idea and discussed it with Rubin when he saw him at a music festival in Coachella, California. Timberlake went to singer-songwriter Neil Diamond's studio, where Rubin played him some demos, one of which was a ballad that would become "(Another Song) All Over Again". Timberlake suggested that the collaboration was meant to "do the anti-whatever-you-want-to-call-it that [Timbaland and] I came up with".


title: FutureSex/LoveSounds

text: During the production of "FutureSex/LoveSounds", Timberlake was interested in rock music. This inspiration was used in his approach in recording the songs, rather than in composing them. Timberlake reveals, "I wanted to sing the song like a rock and roll singer, not an R&B singer." On the influences he drew from, he said that if "Justified" was "characterized" by Michael Jackson and Stevie Wonder, "FutureSex/LoveSounds" is more like David Bowie and Prince. AllMusic stated that Timbaland spends much of the album "refurbishing the electro-funk of Prince's early-'80s recordings," adding that "Justin marries his innuendos to grinding, squealing synths that conjure the funky spirit of the Minneapolis Sound. Other influences include late INXS-frontman Michael Hutchence, Arcade Fire, David Byrne, The Killers, The Strokes, and Radiohead.


title: FutureSex/LoveSounds

text: Although Timberlake expressed interest in recording songs with rock influences, Timbaland was initially reluctant to pursue the idea because he was not accustomed to producing such music. Nonetheless, he suggested that they could produce a handful, since they were afraid of alienating Timberlake's urban fan base. Because of this concern, they produced several reprises, encores and preludes with a rock influence, instead of full-length songs.


title: FutureSex/LoveSounds

text: As to the sound of "FutureSex/LoveSounds", "My Love", the second song composed, steered the album's direction. Danja revealed that it "changed the whole album", and the energy derived from the song was sustained throughout the process. On his inspiration for the infusion of R&B with trance on the album, Danja remembers:


title: FutureSex/LoveSounds

text: Unlike his previous record that was intended to focus on R&B and pop genres, "FutureSex/LoveSounds" is less concentrated on one particular sound, thus representing a wider range. Timberlake explains, "It's more broad as far as the styles I wanted to mix in to my own type of thing." A musically "complex" album, "FutureSex/LoveSounds" is a fusion of rap, rock, funk, soul, gospel, new wave, opera, and world music. "Entertainment Weekly" noted that the album's sound is a "sonic departure" from both *NSYNC and "Justified". Although "What Goes Around" sounds similar to "Justified", Timberlake admitted that it is the only song in the new album to have such similarity.


title: FutureSex/LoveSounds

text: Critics noted that the influences and styles are varied across the album's track list. The title track "FutureSex/LoveSound" incorporates early 1980s new wave and industrial rock. The song "Sexy Ladies" takes on Minneapolis funk. Another funk song on the album is the lead single "SexyBack", the style of which is described by Timberlake as "club funk". Meanwhile, the track "Damn Girl", which was produced by the Jawbreakers, incorporates '60s soul music. Gospel music is infused in "Losing My Way", which is the only song on the album that features choir arrangement.


title: FutureSex/LoveSounds

text: Most of the songs' lyrics were not written down on paper, as Timberlake believed it would only slow him down. For most of the album's production, Timberlake composed the lyrics in his head and would record the song shortly after. Some songs were conceptualized within a relatively shorter time, while others took longer because Timberlake had wanted to incorporate variation. For instance, the lyrics to "Losing My Way" were in a narrative style which took Timberlake longer to write. The only song that Timberlake wrote down on paper was the Rick Rubin-produced "(Another Song) All Over Again". Rubin felt it was unusual for Timberlake because he requested the latter to write the lyrics first instead of recording it directly in the vocal booth.


title: FutureSex/LoveSounds

text: Sharing common themes with "Justified", "FutureSex/LoveSounds" contains songs that are thematically based on and, according to Timberlake, were motivated by sex and love. MTV editor Jennifer Vineyard summarizes that the album illustrates "the very nature of how sex and love are interchangeable and immutable and contradictory and complementary all at once". The first half of the album, "FutureSex", generally focuses on themes about sex that are evident on songs like the title track "FutureSex/LoveSound", "LoveStoned", "Damn Girl" and "Sexy Ladies". The second half, "LoveSounds", is the album's "sweet side", encompassing songs such as "My Love", the slow jam "Until the End of Time" and "What Goes Around... Comes Around". Meanwhile, "LoveStoned" transitions to the two-minute prelude "I Think She Knows".


title: FutureSex/LoveSounds

text: Although themes of sex and love are dominant on the album, the song "Losing My Way" diverges to a more serious topic, which was inspired by a documentary of crystal meth addiction that Timberlake watched. Meanwhile, "(Another Song) All Over Again" is a homage to soul musician Donny Hathaway, according to Timberlake.


title: FutureSex/LoveSounds

text: The lyrics to "What Goes Around... Comes Around" are thought to have similar meaning to "Cry Me a River". In an interview, he revealed that the song was based on one of his friends' experience. "My Love" was also noted as "arguably" similar with "Cry Me a River". Timberlake however confirmed in many interviews that the record is not autobiographical, although he himself had an experience from which to draw.


title: FutureSex/LoveSounds

text: Six major singles were issued from the album, led by "SexyBack" which was released on July 7, 2006, two months prior to the publication of the album. Regarding the song, Timberlake surmised he did not sound like he did before. "SexyBack", which lacks his distinctive falsetto, is seen as a complete departure from Timberlake's recognized sound, and his management thought it might risk being unrecognizable as a "Justin Timberlake song". But that risk nonetheless appealed to Timberlake, who reportedly insisted to have "SexyBack" released as the album's lead single. Jive Records executive Barry Weiss, who initially doubted the suggestion, later told in an interview in February 2007 that albeit an "unusual record", it was a "risk that clearly paid off".


title: FutureSex/LoveSounds

text: "SexyBack" was followed with the release of "My Love" in the third quarter of 2006, and "What Goes Around... Comes Around" in early January 2007. The single releases for the standard edition of the album spanned a year, during which time the fourth single, "LoveStoned/I Think She Knows", was released. When the deluxe edition was issued, the duet version of "Until the End of Time" was also released in the same month. The single version includes as its B-side the "Set the Mood (Prelude)", which is juxtaposed with "Summer Love" in the album's track listing. The European release of "Until the End of Time" omits "Set the Mood (Prelude)", and instead included "Summer Love" as double A-side.


title: FutureSex/LoveSounds

text: Commercially, the album's first three singles have been the most successful in the domestic music market. They each peaked at number one on the US "Billboard" Hot 100, giving Timberlake credit as the only artist to achieve such feat since R&B singer Usher accomplished four chart-topping singles between February and December 2004. "SexyBack" and "My Love" have since been certified multi-platinum by the Recording Industry Association of America (RIAA), an achievement that was seen as "rare" amidst free file-sharing in the Internet, which had made reaching the million mark in sales a struggle in the music industry.


title: FutureSex/LoveSounds

text: In support of the album, Timberlake embarked on the FutureSex/LoveShow, his first concert tour on a global scale. Promoted primarily by AEG Live, the concert tour reached North America, Europe, Asia and Oceania, with 119 venues in total. It began on January 8, 2007, in San Diego, California, and culminated in Abu Dhabi, United Arab Emirates, on December 6, 2007. FutureSex/LoveShow, which drew 1.6 million people worldwide, grossed a total of US$126.8 million, the third top-grossing concert tour in 2007.


title: FutureSex/LoveSounds

text: In May 2007, it was announced that Timberlake signed a deal with HBO network to broadcast the live concert. Timberlake previously appeared on an HBO special, which aired the *NSYNC Live From Madison Square Garden concert in 2000. FutureSex/LoveShow was taped on the second night at the Madison Square Garden on August 16, 2007. The footage was broadcast by HBO on September 3, 2007, and later on September 6 due to demand. On November 20, 2007, a two-disc edition of "" was released on DVD and Blu-ray formats that were sold exclusively by the retailer Best Buy. The release included extra footage including a song-by-song commentary by Timberlake and pre- and post-show clips.


title: FutureSex/LoveSounds

text: In 2008, the broadcast earned Timberlake an Emmy Award in the category Outstanding Picture Editing For A Special (Single Or Multi-Camera). For Timberlake's performance of "What Goes Around... Comes Around" at the Madison Square Garden, Josh Tyrangiel of "Time" magazine ranked it second on its list of top ten live performances in 2007. Tyrangiel writes, "It's a little on the long side, but Timberlake earns this symphonic take on What Goes Around from his HBO special." On October 31, 2007, "Billboard" magazine announced the finalists for the 2007 "Billboard" Touring Awards, which was based on actual box office performance from January 1, 2007, to September 30, 2007. Timberlake was nominated in the categories Top Tour, Top Draw and Breakthrough Artist; he won the latter that was announced during the awards show on November 15, 2007.


title: FutureSex/LoveSounds

text: "FutureSex/LoveSounds" was released worldwide on September 13, 2006. More than a year after its initial release, a deluxe edition of the album was issued on November 27, 2007. This edition contains three additional tracks on the album, each featuring guest artist. One of the tracks is a re-recording of "Until the End of Time", now a duet between Timberlake and American R&B singer Beyoncé. Also included with the Deluxe Edition is a bonus DVD, which contains footage from Timberlake's live performances and behind the scenes on the music videos of four singles, including "SexyBack" and "What Goes Around... Comes Around". The main album included with the Deluxe Edition is the edited version; and an explicit version was not issued.


title: FutureSex/LoveSounds

text: According to "Billboard" magazine, Jive's mother company Sony BMG offered 71 distinct products to tie in with "FutureSex/LoveSounds". This was an attempt at finding solutions to declining sales in physical albums, and Timberlake's album was among those offered in various configurations and versions. Aside from the album itself, the project included digital versions, ringtones, wallpapers and individual tracks.


title: FutureSex/LoveSounds

text: Before, an artist's release was made available in less than ten formats. In recent years, however, versioning strategies have been increasingly applied to the recording industry. On the 2010 book "The Music Industry: Music in the Cloud" which examines such context, author Patrik Wikström noted "FutureSex/LoveSounds" as one "high-profile" example. From the project, a total of 115 versions or products have been sold. According to the International Federation of the Phonographic Industry (IFPI), the project has sold more than 19 million units worldwide, 20 percent of which were sales on CD format.


title: FutureSex/LoveSounds

text: "FutureSex/LoveSounds" was met with generally positive reviews from critics. At Metacritic, which assigns a normalized rating out of 100 to reviews from mainstream publications, the album received an average score of 70, based on 25 reviews. "Torque" commended Timberlake for "manag[ing] to surprise with an eclectic collection of sounds, and in a good way". Katy Kroll of "Billboard" noted the album's sound as a "bit different, but the music's sex appeal remains a force to be reckoned with". Ann Powers of the "Los Angeles Times" suggested that the album is not "an easy listen at first", but "repeated listening helps the tunes unravel". AllMusic senior editor Stephen Thomas Erlewine commended Timberlake's "clear musical vision" and stated that the "serious undercurrent" of several songs on the album, "when combined with Timbaland's retro-future production makes "FutureSex/LoveSounds" fascinating." Kelefa Sanneh of "The New York Times" stated, "How well do Mr. Timberlake and Timbaland work together? So well that they can make even the world's most irritating percussion instrument, the human beatbox, sound pretty good." He also took notice of the album's preludes and interludes, writing, "Timbaland has long been known for hiding little surprises near the end of songs, and here he takes his obsession with transformation to new heights."


title: FutureSex/LoveSounds

text: In a mixed review, "Uncut" magazine found the album "laudable, but overreaching". "Vibe" felt that Timberlake and Timbaland's songwriting is "frustratingly awkward". Alexis Petridis, writing for "The Guardian", said that the album "almost works: close, but no enema". Ben Williams of "New York" magazine commented that Timberlake is "better at being sappy than sexy" and concluded, "If he hasn't yet invented a persona intriguing enough to live up to his music, give him credit for being one of the few white men still brave enough to make black music." Robert Christgau of "Rolling Stone" found Timberlake's "best new" songs "thrilling", although "some of the up-tempo stuff flirts with mechanical muscle-flexing" and "Losing My Way" is a "well-meaning" but "clueless embarrassment." In his consumer guide for "MSN Music", he cited "My Love" and "SexyBack" as highlights and gave the album a , indicating "an enjoyable effort consumers attuned to its overriding aesthetic or individual vision may well treasure".


title: FutureSex/LoveSounds

text: The album earned numerous best-of lists in 2006 and the following years. Music magazine "Rolling Stone" listed "FutureSex/LoveSounds" as their 26th among 2006's top 50 albums of the year. On the British newspaper "The Observer", the album made it at number 47 on the publication's list best 50 albums of 2006. On the general publication "Time", the album is ranked eighth among its list of ten best albums in 2006. The publication notes that Timberlake "levitates into a falsetto that honors Prince and Michael Jackson without stealing from them".


title: FutureSex/LoveSounds

text: "FutureSex/LoveSounds" earned numerous best-of-the-decade lists. "Rolling Stone" ranked it 46th on their top 100 albums of the 2000s - calling it "an avant-garde sprawl of abstract electronica and hallucinatory space funk". "Entertainment Weekly" ranked the album at number nine on their list of 10 best albums of the decade. It says that "FutureSex/LoveSounds" is an album that "redefined pop's cutting edge". Earlier in 2008, the album made it at number 31 on the magazine's 100 new classics in music. The album received additional acclaim from "Pitchfork Media" and "Slant Magazine", ranking the album at number 79 and 49 on their respective "Best of the 2000s" lists. In 2013, "Vibe" named it the greatest album of the 2000s and ranked it at 5 on their list of "The Greatest 50 Albums Since '93". In 2015, "Spin" made a list of the 300 best albums of the past 30 years (1985-2014), ranking the album at number 101.


title: FutureSex/LoveSounds

text: In 2007, the album received four nominations at the Grammy Awards, including Album of the Year and Pop Vocal Album. Timberlake lost the two; however, he won Best Dance Recording for "SexyBack" and Best Rap/Sung Collaboration for "My Love", featuring rapper T.I. The following year at the Grammys, "What Goes Around... Comes Around" was nominated for Record of the Year; Timberlake won Best Male Pop Vocal Performance for the same song and another Best Dance Recording for "LoveStoned/I Think She Knows (Interlude)". In 2007, Timberlake was nominated for seven categories at the MTV Video Music Awards, winning four, including Artist of the Year. He also earned the Quadruple Threat Award, an accolade that recognizes those artists who have excelled in multiple media including music, fashion and acting. For the album, Timberlake won Favorite Pop/Rock Male Artist, Favorite Pop/Rock Album and Favorite Soul/R&B Album at the American Music Awards of 2007. For the album and its singles, Timberlake won World's Best Selling American Artist and World's Best Selling Pop Male Artist at the 2007 World Music Awards. It also won Foreign Album of the Year at the Danish Music Awards and was awarded IFPI Hong Kong Top Sales Music Award for Ten Best Sales Releases, Foreign.


title: FutureSex/LoveSounds

text: Among others, it was nominated for International Album of the Year at the Juno Awards, Album of the Year at the MTV Australia Awards, International Album of the Year at the NRJ Music Awards, and International Album at the Brit Awards. In the two latter he won their awards for International Male Artist of the Year.


title: FutureSex/LoveSounds

text: Fueled by its lead single "SexyBack", "FutureSex/LoveSounds" sold more than 684,000 copies in its first week, debuting at No. 1 on the "Billboard" 200, the official US albums chart. It became Timberlake's first number-one album as a solo artist. The album has sold over four million units in the United States, and has been certified four-times platinum by the Recording Industry Association of America (RIAA). "FutureSex/LoveSounds" became the eighteenth best-selling album of 2006 in the United States. As of 2018, the album has accumulated 6.49 million album-equivalent units in the country, combining sales (4.7 million copies sold) and equivalent streams.


title: FutureSex/LoveSounds

text: Internationally, the album was also well received, selling almost equal units and topping many charts worldwide. Sony BMG distinguished "FutureSex/LoveSounds" as the biggest-selling album among the record company's releases in 2006. Weiss noted that in the past three to five years before the album's release, American artists found it increasingly hard to achieve commercial success in international music markets. He found that Timberlake was among those few "that successfully sells in every country around the world". According to MTV, the album has since sold more than 10 million units worldwide.


title: FutureSex/LoveSounds

text: In the United Kingdom, the album debuted at number one. "FutureSex/LoveSounds" became the biggest pre-order album in iTunes history, breaking the all-time record for one week digital sales previously held by the English alternative rock band Coldplay. Elsewhere in Europe, the album debuted at number one in Ireland, and opened at number two in Sweden and Switzerland. In Australia, the album peaked at number one and has since been certified five-times platinum by the Australian Recording Industry Association, denoting shipments of over 350,000 units. "FutureSex/LoveSounds" was the thirty-fourth best-selling album of 2006 in Australia, and third in the following year.


title: FutureSex/LoveSounds

text: In 2006, "FutureSex/LoveSounds" was ranked as the 18th most popular album of the year on the "Billboard" 200.


title: FutureSex/LoveSounds

text: The following year, "FutureSex/LoveSounds" was ranked as the 7th most popular album of 2007 on the "Billboard" 200.


title: FutureSex/LoveSounds

text: The success of "FutureSex/LoveSounds" affected both Timberlake's and Timbaland's careers. For Timberlake, it further established his career as a solo artist. He comments, "'SexyBack' was the point when people stopped asking me when *NSYNC were going to reunite and started asking what I was going to do next." Timberlake has also beefed up his fan base, gaining "hipster" fans in the wake of the album's success. Combining the international success of Timberlake's "FutureSex/LoveSounds" and Nelly Furtado's "Loose", demands for Timbaland's work reportedly surged. Writing for "Entertainment Weekly", Chris Willman remarked that "FutureSex/LoveSounds" is "like Timberlake's 'cred' record", although Chris Collis said Timbaland nearly stole the spotlight, sharing with Timberlake the "star" status.


title: FutureSex/LoveSounds

text: Aside from earning critical acclaim for the album, according to Sia Michel of "The New York Times", Timberlake was responsible for popularizing in 2006 the catchphrase "I'm bringing sexy back", which is culled from the lead single "SexyBack". It spawned a "phenomenon" in which video-makers spoofed the song. At least four parodies gained attention such as "SweatyBack" and "HairyBack". In 2007, Timberlake is ranked among "Time" magazine's 100 men and women "whose power, talent or moral example is transforming the world". For the publication, Timbaland writes, "It's as if Justin had been born 26 years ago to deliver music to the world. There are those who follow and those who lead. Justin is a leader, setting the bar for what's expected of others." The album has been added to the Rock and Roll Hall of Fame's musical library and archive. Andrew Barker of "Variety" (2016) stated the album "helped recalibrate the sonic frequency of several years' worth of pop-radio trends."


title: FutureSex/LoveSounds

text: In 2013, Maura Johnston from "Vibe" called it an "ambitious classic", writing "FutureSex/LoveSounds" "musically propelled the pop&B genre with audio novellas, interlude twists, Timbaland's weirdo sound effects and that irresistible falsetto" and "embraced the hard/soft duality implied by the title to thrilling effect—and because of their mastery of that balancing act, "FutureSex/LoveSounds" would go on to influence, if not define, much of the pop music that came after it." also adding it "pushed boundaries more forcefully than works by fellow crooners R. Kelly and Usher." For its 10th anniversary, "Rolling Stone" editor Brittany Spanos wrote "Ten years ago, Timberlake destroyed any doubt of his artistry or potential with the mature, innovative "FutureSex/LoveSounds". The pop star experimented with R&B, funk and rock to create a piece of music well ahead of its time. Today, the LP's influence can still be heard in everything from the worldly electro-soul of Zayn Malik to the moody sound of newcomers like Bryson Tiller. The album also signaled Timberlake's transition from pop hitmaker and Hollywood It Boy to a legitimate force as a musician and actor."


title: FutureSex/LoveSounds

text: "FutureSex/LoveSounds" was ranked as the 97th best album of all time on the "Billboard" Top 200 Albums of All Time.


title: FutureSex/LoveSounds

text: All songs are written and produced by Justin Timberlake, Timothy "Timbaland" Mosley, and Nate "Danja" Hills, except where noted.


title: David White (actor)

text: David White (April 4, 1916 – November 27, 1990) was an American stage, film, and television actor best known for playing Darrin Stephens' boss Larry Tate from 1964 to 1972 on the ABC situation comedy "Bewitched".


title: David White (actor)

text: Born on April 4, 1916, in Denver, Colorado, he later moved with his family to Phoenixville, Pennsylvania. He graduated from Los Angeles City College and began acting at the Pasadena Playhouse and the Cleveland Play House. He enlisted in the United States Marine Corps during World War II, and after his discharge, made his Broadway debut in 1949 in "Leaf and Bough".


title: David White (actor)

text: White appeared on numerous television series in the 1950s and 1960s, including "", where he played a police officer. He made two guest appearances on the CBS courtroom drama "Perry Mason". In 1960, he played Henry De Garmo in "The Case of the Madcap Modiste" and in 1963, he played newspaper editor and murderer Victor Kendall in "The Case of the Witless Witness". He also appeared in "Peter Gunn", "Mr. Lucky", "The Untouchables", "The Fugitive", "", "My Three Sons", "Father Knows Best ", "Bonanza", "Have Gun – Will Travel", "My Favorite Martian", and "Dick Tracy". He appeared in two episodes of "The Twilight Zone": "I Sing the Body Electric" and "A World of Difference." Also in 1963, he appeared on "Alfred Hitchcock Presents" as Detective Burr in "An Out for Oscar", and as Lance Hawthorn in "The Dark Pool". Though primarily known for television work, White had several memorable supporting feature -film roles, including portraying a sleazy columnist in "Sweet Smell of Success" (1957), "The Apartment" (1960), in which he played a philandering executive, and "Sunrise at Campobello" (also 1960) and "The Lawbreakers" (1961).


title: David White (actor)

text: In 1964, White was cast as sycophantic advertising executive Larry Tate on "Bewitched", a role he played for the show's entire run (1964–1972). The character is president of the McMann & Tate advertising agency, workplace of Dick York's (and later Dick Sargent's) Darrin Stephens character. Many of the show's episodes revolved around Tate's attempts to land lucrative advertising accounts. This is the role for which he would become best-known both during his life and posthumously. Larry Tate's baby boy Jonathan was named after White's son. White also directed one season-six episode of "Bewitched", "Sam’s Double Mother Trouble".


title: David White (actor)

text: Following the end of "Bewitched", White was a popular character actor on numerous television series for the next decade, including "The Love Boat", "Remington Steele", "Adam-12", "The Rockford Files", "Columbo: Identity Crisis", "What's Happening!!", "Rhoda", "Quincy, M.E.", "The Odd Couple", "Cagney & Lacey", "Wonder Woman" and "Dallas". He played the role of J. Jonah Jameson in the pilot episode of the television series "The Amazing Spider-Man". His final role came in 1986 on an episode of "Dynasty". He also appeared in the movies "The Happy Hooker Goes to Washington" and Disney's "Snowball Express", and had a prominent role in the 1985 version of "Brewster's Millions" starring Richard Pryor.


title: David White (actor)

text: White's first marriage was to stage actress Mary Welch. On May 31, 1958, Welch died of complications from her second pregnancy. Their son, Jonathan, died on December 21, 1988, at the age of 33, in the bombing of Pan Am Flight 103 over Lockerbie, Scotland.


title: David White (actor)

text: White married actress Lisa Figus in 1959, with whom he had a daughter, Alexandra. They divorced and Figus remarried, date unknown.


title: Argiope aurantia

text: Argiope aurantia is a species of spider, commonly known as the yellow garden spider, black and yellow garden spider, golden garden spider, writing spider, zigzag spider, zipper spider, black and yellow argiope, corn spider, Steeler spider, or McKinley spider. The species was first described by Hippolyte Lucas in 1833. It is common to the contiguous United States, Hawaii, southern Canada, Mexico, and Central America. It has distinctive yellow and black markings on the abdomen and a mostly white cephalothorax. Its scientific Latin name translates to "gilded silver-face" (the genus name "Argiope" meaning "silver-face", while the specific epithet "aurantia" means "gilded"). The body length of males range from ; females range from . These spiders may bite if disturbed or harassed, but the venom is harmless to non-allergic humans, roughly equivalent to a bumblebee sting in intensity.


title: Argiope aurantia

text: Yellow garden spiders often build webs in areas adjacent to open sunny fields where they stay concealed and protected from the wind. The spider can also be found along the eaves of houses and outbuildings or in any tall vegetation where they can securely stretch a web.


title: Argiope aurantia

text: Female "Argiope aurantia" spiders tend to be somewhat local, often staying in one place throughout much of their lifetime.


title: Argiope aurantia

text: The web of the yellow garden spider is distinctive: a circular shape up to 2 feet (60 cm) in diameter, with a dense zigzag of silk, known as a stabilimentum, in the center. The purpose of the stabilimentum is disputed. It is possible that it acts as camouflage for the spider lurking in the web's center, but it may also attract insect prey, or even warn birds of the presence of the otherwise difficult-to-see web. Only those spiders that are active during the day construct stabilimenta in their webs.


title: Argiope aurantia

text: To construct the web, several radial lines are stretched among four or five anchor points that can be more than three feet apart. The radial lines meet at a central point. The spider makes a frame with several more radial lines and then fills the center with a spiral of silk, leaving a gap between the spiral rings, starting with the innermost ring and moving outward in a clockwise motion. To ensure that the web is taut, the spider bends the radial lines slightly together while applying the silk spiral. The female builds a substantially larger web than the male's small zigzag web, often found nearby. The spider occupies the center of the web, usually facing straight down, waiting for prey to become ensnared in it. If disturbed by a possible predator, she may drop from the web and hide on the ground nearby. The web normally remains in one location for the entire summer, but spiders can change locations usually early in the season, perhaps to find better protection or better hunting.


title: Argiope aurantia

text: The yellow garden spider can oscillate her web vigorously while she remains firmly attached in the center. This action might prevent predators like wasps and birds from drawing a good bead, and also to fully entangle an insect before it cuts itself loose.


title: Argiope aurantia

text: However, in a case observed in Georgia, Davis witnessed a "Vespa crabro" fly into the spider's web and get tangled up. Upon looking closer it was found that "V. crabro" was actually cutting free prey that had been caught in the "A. aurantia" web. In this case, "A. aurantia" did not interfere or fight with the European hornet, probably because it dropped from the web and hid nearby.


title: Argiope aurantia

text: The yellow garden spider does not live in very dense location clusters like other orb spiders such as the golden orb web spider. The yellow garden spider keeps a clean orderly web in comparison to the cluttered series of webs built and abandoned by groups of golden orb spiders.


title: Argiope aurantia

text: This spider is found from Canada to Costa Rica, but less so in the basin and mountain areas of the Rockies.


title: Argiope aurantia

text: "Argiope" spiders are not aggressive. They might bite if grabbed, but other than for defense they do not attack large animals. Their venom often contains a library of polyamine toxins with potential as therapeutic medicinal agents. Notable among these is the argiotoxin ArgTX-636.


title: Argiope aurantia

text: A bite by "Argiope aurantia" is comparable to a bee sting with redness and swelling. For a healthy adult, a bite is not considered an issue. Though these spiders are not aggressive, people who are very young, elderly, or who have compromised immune systems should exercise caution, just as they would around a beehive or a hornet nest.


title: Argiope aurantia

text: Yellow garden spiders breed twice a year. The males roam in search of a female, building a small web near or actually in the female's web, then court the females by plucking strands on her web. Often, when the male approaches the female, he has a safety drop line ready, in case she attacks him. The male uses the palpal bulbs on his pedipalps to transfer sperm to the female. After inserting the second palpal bulb, the male dies, and is sometimes then eaten by the female.


title: Argiope aurantia

text: The female lays her eggs at night on a sheet of silky material, then covers them with another layer of silk, then a protective brownish silk. She then uses her legs to form the sheet into a ball with an upturned neck. Egg sacs range from 5/8" to 1" in diameter. The location of the egg sac varies. She sometimes suspends the egg sac near her web or placed several feet from the web. Each spider produces from one to four sacs with perhaps over a thousand eggs inside each.


title: Argiope aurantia

text: In the spring, the young spiders exit the sac. They are so tiny that they look like dust gathered inside the silk mesh. Some of the spiderlings remain nearby, but others exude a strand of silk that gets caught by the breeze, carrying the spiderling to a more distant area.


title: Argiope aurantia

text: Females of the species are the most commonly seen in gardens. Their webs are usually characterized by a zigzag shaped stabilimentum (an extra thick line of silk) in the middle extending vertically. The spiders spend most of their time in their webs, waiting for prey to become ensnared. When prey becomes caught in the web, the spider may undulate the web back and forth to further trap the insect. When the prey is secure, the spider kills it by injecting its venom and then wraps the prey in a cocoon of silk for later consumption (typically 1–4 hours later). Prey includes small vertebrates, such as geckos and green anoles, as well as insects.


title: Pointer (computer programming)

text: In computer science, a pointer is an object in many programming languages that stores a memory address. This can be that of another value located in computer memory, or in some cases, that of memory-mapped computer hardware. A pointer "references" a location in memory, and obtaining the value stored at that location is known as "dereferencing" the pointer. As an analogy, a page number in a book's index could be considered a pointer to the corresponding page; dereferencing such a pointer would be done by flipping to the page with the given page number and reading the text found on that page. The actual format and content of a pointer variable is dependent on the underlying computer architecture.


title: Pointer (computer programming)

text: Using pointers significantly improves performance for repetitive operations, like traversing iterable data structures (e.g. strings, lookup tables, control tables and tree structures). In particular, it is often much cheaper in time and space to copy and dereference pointers than it is to copy and access the data to which the pointers point.


title: Pointer (computer programming)

text: Pointers are also used to hold the addresses of entry points for called subroutines in procedural programming and for run-time linking to dynamic link libraries (DLLs). In object-oriented programming, pointers to functions are used for binding methods, often using virtual method tables.


title: Pointer (computer programming)

text: A pointer is a simple, more concrete implementation of the more abstract "reference" data type. Several languages, especially low-level languages, support some type of pointer, although some have more restrictions on their use than others. While "pointer" has been used to refer to references in general, it more properly applies to data structures whose interface explicitly allows the pointer to be manipulated (arithmetically via "") as a memory address, as opposed to a magic cookie or capability which does not allow such. Because pointers allow both protected and unprotected access to memory addresses, there are risks associated with using them, particularly in the latter case. Primitive pointers are often stored in a format similar to an integer; however, attempting to dereference or "look up" such a pointer whose value is not a valid memory address could cause a program to crash (or contain invalid data). To alleviate this potential problem, as a matter of type safety, pointers are considered a separate type parameterized by the type of data they point to, even if the underlying representation is an integer. Other measures may also be taken (such as validation & bounds checking), to verify that the pointer variable contains a value that is both a valid memory address and within the numerical range that the processor is capable of addressing.


title: Pointer (computer programming)

text: In 1955, Soviet computer scientist Kateryna Yushchenko invented the Address programming language that made possible indirect addressing and addresses of the highest rank – analogous to pointers. This language was widely used on the Soviet Union computers. However, it was unknown outside the Soviet Union and usually Harold Lawson is credited with the invention, in 1964, of the pointer. In 2000, Lawson was presented the Computer Pioneer Award by the IEEE "[f]or inventing the pointer variable and introducing this concept into PL/I, thus providing for the first time, the capability to flexibly treat linked lists in a general-purpose high-level language". His seminal paper on the concepts appeared in the June 1967 issue of CACM entitled: PL/I List Processing. According to the Oxford English Dictionary, the word "pointer" first appeared in print as a "stack pointer" in a technical memorandum by the System Development Corporation.


title: Pointer (computer programming)

text: A "data primitive" (or just "primitive") is any datum that can be read from or written to computer memory using one memory access (for instance, both a "byte" and a "word" are primitives).


title: Pointer (computer programming)

text: A "data aggregate" (or just "aggregate") is a group of primitives that are logically contiguous in memory and that are viewed collectively as one datum (for instance, an aggregate could be 3 logically contiguous bytes, the values of which represent the 3 coordinates of a point in space). When an aggregate is entirely composed of the same type of primitive, the aggregate may be called an "array"; in a sense, a multi-byte "word" primitive is an array of bytes, and some programs use words in this way.


title: Pointer (computer programming)

text: In the context of these definitions, a "byte" is the smallest primitive; each memory address specifies a different byte. The memory address of the initial byte of a datum is considered the memory address (or "base memory address") of the entire datum.


title: Pointer (computer programming)

text: A "memory pointer" (or just "pointer") is a primitive, the value of which is intended to be used as a memory address; it is said that "a pointer points to a memory address". It is also said that "a pointer points to a datum [in memory]" when the pointer's value is the datum's memory address.


title: Pointer (computer programming)

text: More generally, a pointer is a kind of reference, and it is said that "a pointer references a datum stored somewhere in memory"; to obtain that datum is "to dereference the pointer". The feature that separates pointers from other kinds of reference is that a pointer's value is meant to be interpreted as a memory address, which is a rather low-level concept.


title: Pointer (computer programming)

text: References serve as a level of indirection: A pointer's value determines which memory address (that is, which datum) is to be used in a calculation. Because indirection is a fundamental aspect of algorithms, pointers are often expressed as a fundamental data type in programming languages; in statically (or strongly) typed programming languages, the type of a pointer determines the type of the datum to which the pointer points.


title: Pointer (computer programming)

text: Pointers are a very thin abstraction on top of the addressing capabilities provided by most modern architectures. In the simplest scheme, an "address", or a numeric index, is assigned to each unit of memory in the system, where the unit is typically either a byte or a word – depending on whether the architecture is byte-addressable or word-addressable – effectively transforming all of memory into a very large array. The system would then also provide an operation to retrieve the value stored in the memory unit at a given address (usually utilizing the machine's general purpose registers).


title: Pointer (computer programming)

text: In the usual case, a pointer is large enough to hold more addresses than there are units of memory in the system. This introduces the possibility that a program may attempt to access an address which corresponds to no unit of memory, either because not enough memory is installed (i.e. beyond the range of available memory) or the architecture does not support such addresses. The first case may, in certain platforms such as the Intel x86 architecture, be called a segmentation fault (segfault). The second case is possible in the current implementation of AMD64, where pointers are 64 bit long and addresses only extend to 48 bits. Pointers must conform to certain rules (canonical addresses), so if a non-canonical pointer is dereferenced, the processor raises a general protection fault.


title: Pointer (computer programming)

text: On the other hand, some systems have more units of memory than there are addresses. In this case, a more complex scheme such as memory segmentation or paging is employed to use different parts of the memory at different times. The last incarnations of the x86 architecture support up to 36 bits of physical memory addresses, which were mapped to the 32-bit linear address space through the PAE paging mechanism. Thus, only 1/16 of the possible total memory may be accessed at a time. Another example in the same computer family was the 16-bit protected mode of the 80286 processor, which, though supporting only 16 MB of physical memory, could access up to 1 GB of virtual memory, but the combination of 16-bit address and segment registers made accessing more than 64 KB in one data structure cumbersome.


title: Pointer (computer programming)

text: In order to provide a consistent interface, some architectures provide memory-mapped I/O, which allows some addresses to refer to units of memory while others refer to device registers of other devices in the computer. There are analogous concepts such as file offsets, array indices, and remote object references that serve some of the same purposes as addresses for other types of objects.


title: Pointer (computer programming)

text: Pointers are directly supported without restrictions in languages such as PL/I, C, C++, Pascal, FreeBASIC, and implicitly in most assembly languages. They are primarily used for constructing references, which in turn are fundamental to constructing nearly all data structures, as well as in passing data between different parts of a program.


title: Pointer (computer programming)

text: In functional programming languages that rely heavily on lists, data references are managed abstractly by using primitive constructs like cons and the corresponding elements car and cdr, which can be thought of as specialised pointers to the first and second components of a cons-cell. This gives rise to some of the idiomatic "flavour" of functional programming. By structuring data in such cons-lists, these languages facilitate recursive means for building and processing data—for example, by recursively accessing the head and tail elements of lists of lists; e.g. "taking the car of the cdr of the cdr". By contrast, memory management based on pointer dereferencing in some approximation of an array of memory addresses facilitates treating variables as slots into which data can be assigned imperatively.


title: Pointer (computer programming)

text: When dealing with arrays, the critical lookup operation typically involves a stage called "address calculation" which involves constructing a pointer to the desired data element in the array. In other data structures, such as linked lists, pointers are used as references to explicitly tie one piece of the structure to another.


title: Pointer (computer programming)

text: Pointers are used to pass parameters by reference. This is useful if the programmer wants a function's modifications to a parameter to be visible to the function's caller. This is also useful for returning multiple values from a function.


title: Pointer (computer programming)

text: Pointers can also be used to allocate and deallocate dynamic variables and arrays in memory. Since a variable will often become redundant after it has served its purpose, it is a waste of memory to keep it, and therefore it is good practice to deallocate it (using the original pointer reference) when it is no longer needed. Failure to do so may result in a "memory leak" (where available free memory gradually, or in severe cases rapidly, diminishes because of an accumulation of numerous redundant memory blocks).


title: Pointer (computer programming)

text: Because the C language does not specify an implicit initialization for objects of automatic storage duration, care should often be taken to ensure that the address to which codice_1 points is valid; this is why it is sometimes suggested that a pointer be explicitly initialized to the null pointer value, which is traditionally specified in C with the standardized macro codice_6:


title: Pointer (computer programming)

text: Dereferencing a null pointer in C produces undefined behavior, which could be catastrophic. However, most implementations simply halt execution of the program in question, usually with a segmentation fault.


title: Pointer (computer programming)

text: In any case, once a pointer has been declared, the next logical step is for it to point at something:


title: Pointer (computer programming)

text: This assigns the value of the address of codice_7 to codice_1. For example, if codice_7 is stored at memory location of 0x8130 then the value of codice_1 will be 0x8130 after the assignment. To dereference the pointer, an asterisk is used again:


title: Pointer (computer programming)

text: This means take the contents of codice_1 (which is 0x8130), "locate" that address in memory and set its value to 8.


title: Pointer (computer programming)

text: Assume that codice_7 is located at address 0x8130 in memory and codice_1 at 0x8134; also assume this is a 32-bit machine such that an int is 32-bits wide. The following is what would be in memory after the following code snippet is executed:


title: Pointer (computer programming)

text: the computer will take the contents of codice_1 (which is 0x8130), 'locate' that address, and assign 8 to that location yielding the following memory:


title: Pointer (computer programming)

text: Clearly, accessing codice_7 will yield the value of 8 because the previous instruction modified the contents of codice_7 by way of the pointer codice_1.


title: Pointer (computer programming)

text: When setting up data structures like lists, queues and trees, it is necessary to have pointers to help manage how the structure is implemented and controlled. Typical examples of pointers are start pointers, end pointers, and stack pointers. These pointers can either be absolute (the actual physical address or a virtual address in virtual memory) or relative (an offset from an absolute start address ("base") that typically uses fewer bits than a full address, but will usually require one additional arithmetic operation to resolve).


title: Pointer (computer programming)

text: Relative addresses are a form of manual memory segmentation, and share many of its advantages and disadvantages. A two-byte offset, containing a 16-bit, unsigned integer, can be used to provide relative addressing for up to 64 KiB (2 bytes) of a data structure. This can easily be extended to 128, 256 or 512 KiB if the address pointed to is forced to be aligned on a half-word, word or double-word boundary (but, requiring an additional "shift left" bitwise operation—by 1, 2 or 3 bits—in order to adjust the offset by a factor of 2, 4 or 8, before its addition to the base address). Generally, though, such schemes are a lot of trouble, and for convenience to the programmer absolute addresses (and underlying that, a "flat address space") is preferred.


title: Pointer (computer programming)

text: A one byte offset, such as the hexadecimal ASCII value of a character (e.g. X'29') can be used to point to an alternative integer value (or index) in an array (e.g., X'01'). In this way, characters can be very efficiently translated from 'raw data' to a usable sequential index and then to an absolute address without a lookup table.


title: Pointer (computer programming)

text: In C, array indexing is formally defined in terms of pointer arithmetic; that is, the language specification requires that codice_22 be equivalent to codice_23. Thus in C, arrays can be thought of as pointers to consecutive areas of memory (with no gaps), and the syntax for accessing arrays is identical for that which can be used to dereference pointers. For example, an array codice_24 can be declared and used in the following manner:


title: Pointer (computer programming)

text: This allocates a block of five integers and names the block codice_24, which acts as a pointer to the block. Another common use of pointers is to point to dynamically allocated memory from malloc which returns a consecutive block of memory of no less than the requested size that can be used as an array.


title: Pointer (computer programming)

text: While most operators on arrays and pointers are equivalent, the result of the codice_26 operator differs. In this example, codice_27 will evaluate to codice_28 (the size of the array), while codice_29 will evaluate to codice_30, the size of the pointer itself.


title: Pointer (computer programming)

text: If codice_24 is located in memory starting at address 0x1000 on a 32-bit little-endian machine then memory will contain the following (values are in hexadecimal, like the addresses):


title: Pointer (computer programming)

text: Represented here are five integers: 2, 4, 3, 1, and 5. These five integers occupy 32 bits (4 bytes) each with the least-significant byte stored first (this is a little-endian CPU architecture) and are stored consecutively starting at address 0x1000.


title: Pointer (computer programming)

text: This pointer-recursive definition is essentially the same as the reference-recursive definition from the Haskell programming language:


title: Pointer (computer programming)

text: codice_45 is the empty list, and codice_46 is a cons cell of type codice_7 with another link also of type codice_7.


title: Pointer (computer programming)

text: The definition with references, however, is type-checked and does not use potentially confusing signal values. For this reason, data structures in C are usually dealt with via wrapper functions, which are carefully checked for correctness.


title: Pointer (computer programming)

text: Pointers can be used to pass variables by their address, allowing their value to be changed. For example, consider the following C code:


title: Pointer (computer programming)

text: In some programs, the required amount of memory depends on what "the user" may enter. In such cases the programmer needs to allocate memory dynamically. This is done by allocating memory at the "heap" rather than on the "stack", where variables usually are stored (variables can also be stored in the CPU registers, but that's another matter). Dynamic memory allocation can only be made through pointers, and names (like with common variables) can't be given.


title: Pointer (computer programming)

text: Pointers are used to store and manage the addresses of dynamically allocated blocks of memory. Such blocks are used to store data objects or arrays of objects. Most structured and object-oriented languages provide an area of memory, called the "heap" or "free store", from which objects are dynamically allocated.


title: Pointer (computer programming)

text: The example C code below illustrates how structure objects are dynamically allocated and referenced. The standard C library provides the function codice_49 for allocating memory blocks from the heap. It takes the size of an object to allocate as a parameter and returns a pointer to a newly allocated block of memory suitable for storing the object, or it returns a null pointer if the allocation failed.


title: Pointer (computer programming)

text: The code below illustrates how memory objects are dynamically deallocated, i.e., returned to the heap or free store. The standard C library provides the function codice_50 for deallocating a previously allocated memory block and returning it back to the heap.


title: Pointer (computer programming)

text: On some computing architectures, pointers can be used to directly manipulate memory or memory-mapped devices.


title: Pointer (computer programming)

text: Assigning addresses to pointers is an invaluable tool when programming microcontrollers. Below is a simple example declaring a pointer of type int and initialising it to a hexadecimal address in this example the constant 0x7FFF:


title: Pointer (computer programming)

text: In the mid 80s, using the BIOS to access the video capabilities of PCs was slow. Applications that were display-intensive typically used to access CGA video memory directly by casting the hexadecimal constant 0xB8000 to a pointer to an array of 80 unsigned 16-bit int values. Each value consisted of an ASCII code in the low byte, and a colour in the high byte. Thus, to put the letter 'A' at row 5, column 2 in bright white on blue, one would write code like the following:


title: Pointer (computer programming)

text: Control tables that are used to control program flow usually make extensive use of pointers. The pointers, usually embedded in a table entry, may, for instance, be used to hold the entry points to subroutines to be executed, based on certain conditions defined in the same table entry. The pointers can however be simply indexes to other separate, but associated, tables comprising an array of the actual addresses or the addresses themselves (depending upon the programming language constructs available). They can also be used to point to earlier table entries (as in loop processing) or forward to skip some table entries (as in a switch or "early" exit from a loop). For this latter purpose, the "pointer" may simply be the table entry number itself and can be transformed into an actual address by simple arithmetic.


title: Pointer (computer programming)

text: In many languages, pointers have the additional restriction that the object they point to has a specific type. For example, a pointer may be declared to point to an integer; the language will then attempt to prevent the programmer from pointing it to objects which are not integers, such as floating-point numbers, eliminating some errors.


title: Pointer (computer programming)

text: The following would yield a compiler warning of "assignment from incompatible pointer type" under GCC


title: Pointer (computer programming)

text: To suppress the compiler warning, it must be made explicit that you do indeed wish to make the assignment by typecasting it


title: Pointer (computer programming)

text: A 2005 draft of the C standard requires that casting a pointer derived from one type to one of another type should maintain the alignment correctness for both types (6.3.2.3 Pointers, par. 7):


title: Pointer (computer programming)

text: In languages that allow pointer arithmetic, arithmetic on pointers takes into account the size of the type. For example, adding an integer number to a pointer produces another pointer that points to an address that is higher by that number times the size of the type. This allows us to easily compute the address of elements of an array of a given type, as was shown in the C arrays example above. When a pointer of one type is cast to another type of a different size, the programmer should expect that pointer arithmetic will be calculated differently. In C, for example, if the codice_51 array starts at 0x2000 and codice_58 is 4 bytes whereas codice_59 is 1 byte, then codice_60 will point to 0x2004, but codice_61 would point to 0x2001. Other risks of casting include loss of data when "wide" data is written to "narrow" locations (e.g. codice_62), unexpected results when bit-shifting values, and comparison problems, especially with signed vs unsigned values.


title: Pointer (computer programming)

text: Although it is impossible in general to determine at compile-time which casts are safe, some languages store run-time type information which can be used to confirm that these dangerous casts are valid at runtime. Other languages merely accept a conservative approximation of safe casts, or none at all.


title: Pointer (computer programming)

text: In C and C++, even if two pointers compare as equal that doesn't mean they are equivalent. In these languages "and" LLVM, the rule is interpreted to mean that "just because two pointers point to the same address, does not mean they are equal in the sense that they can be used interchangeably", the difference between the pointers referred to as their "provenance". Casting to an integer type such as codice_63 is implementation-defined and the comparison it provides does not provide any more insight as to whether the two pointers are interchangeable. In addition, further conversion to bytes and arithmetic will throw off optimizers trying to keep track the use of pointers, a problem still being elucidated in academic research.


title: Pointer (computer programming)

text: As a pointer allows a program to attempt to access an object that may not be defined, pointers can be the origin of a variety of programming errors. However, the usefulness of pointers is so great that it can be difficult to perform programming tasks without them. Consequently, many languages have created constructs designed to provide some of the useful features of pointers without some of their pitfalls, also sometimes referred to as "pointer hazards". In this context, pointers that directly address memory (as used in this article) are referred to as s, by contrast with smart pointers or other variants.


title: Pointer (computer programming)

text: One major problem with pointers is that as long as they can be directly manipulated as a number, they can be made to point to unused addresses or to data which is being used for other purposes. Many languages, including most functional programming languages and recent imperative languages like Java, replace pointers with a more opaque type of reference, typically referred to as simply a "reference", which can only be used to refer to objects and not manipulated as numbers, preventing this type of error. Array indexing is handled as a special case.


title: Pointer (computer programming)

text: A pointer which does not have any address assigned to it is called a wild pointer. Any attempt to use such uninitialized pointers can cause unexpected behavior, either because the initial value is not a valid address, or because using it may damage other parts of the program. The result is often a segmentation fault, storage violation or wild branch (if used as a function pointer or branch address).


title: Pointer (computer programming)

text: In systems with explicit memory allocation, it is possible to create a dangling pointer by deallocating the memory region it points into. This type of pointer is dangerous and subtle because a deallocated memory region may contain the same data as it did before it was deallocated but may be then reallocated and overwritten by unrelated code, unknown to the earlier code. Languages with garbage collection prevent this type of error because deallocation is performed automatically when there are no more references in scope.


title: Pointer (computer programming)

text: Some languages, like C++, support smart pointers, which use a simple form of reference counting to help track allocation of dynamic memory in addition to acting as a reference. In the absence of reference cycles, where an object refers to itself indirectly through a sequence of smart pointers, these eliminate the possibility of dangling pointers and memory leaks. Delphi strings support reference counting natively.


title: Pointer (computer programming)

text: The Rust programming language introduces a "borrow checker", "pointer lifetimes", and an optimisation based around optional types for null pointers to eliminate pointer bugs, without resorting to garbage collection.


title: Pointer (computer programming)

text: A null pointer has a value reserved for indicating that the pointer does not refer to a valid object. Null pointers are routinely used to represent conditions such as the end of a list of unknown length or the failure to perform some action; this use of null pointers can be compared to nullable types and to the "Nothing" value in an option type.


title: Pointer (computer programming)

text: A dangling pointer is a pointer that does not point to a valid object and consequently may make a program crash or behave oddly. In the Pascal or C programming languages, pointers that are not specifically initialized may point to unpredictable addresses in memory.


title: Pointer (computer programming)

text: Here, codice_64 may point to anywhere in memory, so performing the assignment codice_65 can corrupt an unknown area of memory or trigger a segmentation fault.


title: Pointer (computer programming)

text: Where a pointer is used as the address of the entry point to a program or start of a function which doesn't return anything and is also either uninitialized or corrupted, if a call or jump is nevertheless made to this address, a "wild branch" is said to have occurred. In other words, a wild branch is a function pointer that is wild (dangling).


title: Pointer (computer programming)

text: The consequences are usually unpredictable and the error may present itself in several different ways depending upon whether or not the pointer is a "valid" address and whether or not there is (coincidentally) a valid instruction (opcode) at that address. The detection of a wild branch can present one of the most difficult and frustrating debugging exercises since much of the evidence may already have been destroyed beforehand or by execution of one or more inappropriate instructions at the branch location. If available, an instruction set simulator can usually not only detect a wild branch before it takes effect, but also provide a complete or partial trace of its history.


title: Pointer (computer programming)

text: An autorelative pointer is a pointer whose value is interpreted as an offset from the address of the pointer itself; thus, if a data structure has an autorelative pointer member that points to some portion of the data structure itself, then the data structure may be relocated in memory without having to update the value of the auto relative pointer.


title: Pointer (computer programming)

text: The cited patent also uses the term self-relative pointer to mean the same thing. However, the meaning of that term has been used in other ways:


title: Pointer (computer programming)

text: A based pointer is a pointer whose value is an offset from the value of another pointer. This can be used to store and load blocks of data, assigning the address of the beginning of the block to the base pointer.


title: Pointer (computer programming)

text: In some languages, a pointer can reference another pointer, requiring multiple dereference operations to get to the original value. While each level of indirection may add a performance cost, it is sometimes necessary in order to provide correct behavior for complex data structures. For example, in C it is typical to define a linked list in terms of an element that contains a pointer to the next element of the list:


title: Pointer (computer programming)

text: This implementation uses a pointer to the first element in the list as a surrogate for the entire list. If a new value is added to the beginning of the list, codice_66 has to be changed to point to the new element. Since C arguments are always passed by value, using double indirection allows the insertion to be implemented correctly, and has the desirable side-effect of eliminating special case code to deal with insertions at the front of the list:


title: Pointer (computer programming)

text: In this case, if the value of codice_67 is less than that of codice_66, the caller's codice_66 is properly updated to the address of the new item.


title: Pointer (computer programming)

text: A basic example is in the argv argument to the main function in C (and C++), which is given in the prototype as codice_70—this is because the variable codice_71 itself is a pointer to an array of strings (an array of arrays), so codice_72 is a pointer to the 0th string (by convention the name of the program), and codice_73 is the 0th character of the 0th string.


title: Pointer (computer programming)

text: In some languages, a pointer can reference executable code, i.e., it can point to a function, method, or procedure. A function pointer will store the address of a function to be invoked. While this facility can be used to call functions dynamically, it is often a favorite technique of virus and other malicious software writers.


title: Pointer (computer programming)

text: In doubly linked lists or tree structures, a back pointer held on an element 'points back' to the item referring to the current element. These are useful for navigation and manipulation, at the expense of greater memory use.


title: Pointer (computer programming)

text: Primarily for languages which do not support pointers explicitly but "do" support arrays, the array can be thought of and processed as if it were the entire memory range (within the scope of the particular array) and any index to it can be thought of as equivalent to a general purpose register in assembly language (that points to the individual bytes but whose actual value is relative to the start of the array, not its absolute address in memory).


title: Pointer (computer programming)

text: Assuming the array is, say, a contiguous 16 megabyte character data structure, individual bytes (or a string of contiguous bytes within the array) can be directly addressed and manipulated using the name of the array with a 31 bit unsigned integer as the simulated pointer (this is quite similar to the "C arrays" example shown above). Pointer arithmetic can be simulated by adding or subtracting from the index, with minimal additional overhead compared to genuine pointer arithmetic.


title: Pointer (computer programming)

text: It is even theoretically possible, using the above technique, together with a suitable instruction set simulator to simulate "any" machine code or the intermediate (byte code) of "any" processor/language in another language that does not support pointers at all (for example Java / JavaScript). To achieve this, the binary code can initially be loaded into contiguous bytes of the array for the simulator to "read", interpret and action entirely within the memory contained of the same array.


title: Pointer (computer programming)

text: If necessary, to completely avoid buffer overflow problems, bounds checking can usually be actioned for the compiler (or if not, hand coded in the simulator).


title: Pointer (computer programming)

text: Ada is a strongly typed language where all pointers are typed and only safe type conversions are permitted. All pointers are by default initialized to codice_74, and any attempt to access data through a codice_74 pointer causes an exception to be raised. Pointers in Ada are called "access types". Ada 83 did not permit arithmetic on access types (although many compiler vendors provided for it as a non-standard feature), but Ada 95 supports “safe” arithmetic on access types via the package codice_76.


title: Pointer (computer programming)

text: Several old versions of BASIC for the Windows platform had support for STRPTR() to return the address of a string, and for VARPTR() to return the address of a variable. Visual Basic 5 also had support for OBJPTR() to return the address of an object interface, and for an ADDRESSOF operator to return the address of a function. The types of all of these are integers, but their values are equivalent to those held by pointer types.


title: Pointer (computer programming)

text: Newer dialects of BASIC, such as FreeBASIC or BlitzMax, have exhaustive pointer implementations, however. In FreeBASIC, arithmetic on codice_77 pointers (equivalent to C's codice_78) are treated as though the codice_77 pointer was a byte width. codice_77 pointers cannot be dereferenced, as in C. Also, casting between codice_77 and any other type's pointers will not generate any warnings.


title: Pointer (computer programming)

text: In C and C++ pointers are variables that store addresses and can be "null". Each pointer has a type it points to, but one can freely cast between pointer types (but not between a function pointer and an object pointer). A special pointer type called the “void pointer” allows pointing to any (non-function) object, but is limited by the fact that it cannot be dereferenced directly (it shall be cast). The address itself can often be directly manipulated by casting a pointer to and from an integral type of sufficient size, though the results are implementation-defined and may indeed cause undefined behavior; while earlier C standards did not have an integral type that was guaranteed to be large enough, C99 specifies the codice_63 "typedef name" defined in codice_83, but an implementation need not provide it.


title: Pointer (computer programming)

text: C++ fully supports C pointers and C typecasting. It also supports a new group of typecasting operators to help catch some unintended dangerous casts at compile-time. Since C++11, the C++ standard library also provides smart pointers (codice_84, codice_85 and codice_86) which can be used in some situations as a safer alternative to primitive C pointers. C++ also supports another form of reference, quite different from a pointer, called simply a "reference" or "reference type".


title: Pointer (computer programming)

text: Pointer arithmetic, that is, the ability to modify a pointer's target address with arithmetic operations (as well as magnitude comparisons), is restricted by the language standard to remain within the bounds of a single array object (or just after it), and will otherwise invoke undefined behavior. Adding or subtracting from a pointer moves it by a multiple of the size of its datatype. For example, adding 1 to a pointer to 4-byte integer values will increment the pointer's pointed-to byte-address by 4. This has the effect of incrementing the pointer to point at the next element in a contiguous array of integers—which is often the intended result. Pointer arithmetic cannot be performed on codice_87 pointers because the void type has no size, and thus the pointed address can not be added to, although gcc and other compilers will perform byte arithmetic on codice_78 as a non-standard extension, treating it as if it were codice_89.


title: Pointer (computer programming)

text: Pointer arithmetic provides the programmer with a single way of dealing with different types: adding and subtracting the number of elements required instead of the actual offset in bytes. (Pointer arithmetic with codice_89 pointers uses byte offsets, because codice_59 is 1 by definition.) In particular, the C definition explicitly declares that the syntax codice_92, which is the codice_93-th element of the array codice_7, is equivalent to codice_95, which is the content of the element pointed by codice_96. This implies that codice_97 is equivalent to codice_92, and one can write, e.g., codice_99 or codice_100 equally well to access the fourth element of an array codice_7.


title: Pointer (computer programming)

text: While powerful, pointer arithmetic can be a source of computer bugs. It tends to confuse novice programmers, forcing them into different contexts: an expression can be an ordinary arithmetic one or a pointer arithmetic one, and sometimes it is easy to mistake one for the other. In response to this, many modern high-level computer languages (for example Java) do not permit direct access to memory using addresses. Also, the safe C dialect Cyclone addresses many of the issues with pointers. See C programming language for more discussion.


title: Pointer (computer programming)

text: The codice_87 pointer, or codice_78, is supported in ANSI C and C++ as a generic pointer type. A pointer to codice_87 can store the address of any object (not function), and, in C, is implicitly converted to any other object pointer type on assignment, but it must be explicitly cast if dereferenced.


title: Pointer (computer programming)

text: C++ does not allow the implicit conversion of codice_78 to other pointer types, even in assignments. This was a design decision to avoid careless and even unintended casts, though most compilers only output warnings, not errors, when encountering other casts.


title: Pointer (computer programming)

text: In C++, there is no codice_107 (reference to void) to complement codice_78 (pointer to void), because references behave like aliases to the variables they point to, and there can never be a variable whose type is codice_87.


title: Pointer (computer programming)

text: In C++ pointers to non-static members of a class can be defined. If a class codice_110 has a member codice_111 then codice_112 is a pointer to the member codice_7 of type codice_114. This member can be an object or a function. They can be used on the right-hand side of operators codice_115 and codice_116 to access the corresponding member.


title: Pointer (computer programming)

text: These pointer declarations cover most variants of pointer declarations. Of course it is possible to have triple pointers, but the main principles behind a triple pointer already exist in a double pointer. The naming used here is what the expression codice_117 equals for each of these types when using g++ or clang.


title: Pointer (computer programming)

text: In the C# programming language, pointers are supported only under certain conditions: any block of code including pointers must be marked with the codice_121 keyword. Such blocks usually require higher security permissions to be allowed to run.


title: Pointer (computer programming)

text: The syntax is essentially the same as in C++, and the address pointed can be either managed or unmanaged memory. However, pointers to managed memory (any pointer to a managed object) must be declared using the codice_122 keyword, which prevents the garbage collector from moving the pointed object as part of memory management while the pointer is in scope, thus keeping the pointer address valid.


title: Pointer (computer programming)

text: An exception to this is from using the codice_123 structure, which is a safe managed equivalent to codice_124, and does not require unsafe code. This type is often returned when using methods from the codice_125, for example:


title: Pointer (computer programming)

text: The .NET framework includes many classes and methods in the codice_126 and codice_125 namespaces (such as the codice_128 class) which convert .NET types (for example, codice_129) to and from many unmanaged types and pointers (for example, codice_130 or codice_78) to allow communication with unmanaged code. Most such methods have the same security permission requirements as unmanaged code, since they can affect arbitrary places in memory.


title: Pointer (computer programming)

text: The COBOL programming language supports pointers to variables. Primitive or group (record) data objects declared within the codice_132 of a program are inherently pointer-based, where the only memory allocated within the program is space for the address of the data item (typically a single memory word). In program source code, these data items are used just like any other codice_133 variable, but their contents are implicitly accessed indirectly through their codice_134 pointers.


title: Pointer (computer programming)

text: Memory space for each pointed-to data object is typically allocated dynamically using external codice_135 statements or via embedded extended language constructs such as codice_136 or codice_137 statements.


title: Pointer (computer programming)

text: Extended versions of COBOL also provide pointer variables declared with codice_138 codice_139 codice_140 clauses. The values of such pointer variables are established and modified using codice_141 and codice_141 codice_143 statements.


title: Pointer (computer programming)

text: Some extended versions of COBOL also provide codice_144 variables, which are capable of storing the addresses of executable code.


title: Pointer (computer programming)

text: The PL/I language provides full support for pointers to all data types (including pointers to structures), recursion, multitasking, string handling, and extensive built-in functions. PL/I was quite a leap forward compared to the programming languages of its time. PL/I pointers are untyped, and therefore no casting is required for pointer dereferencing or assignment. The declaration syntax for a pointer is codice_145, which declares a pointer named "xxx". Pointers are used with codice_146 variables. A based variable can be declared with a default locator (codice_147 or without (codice_148), where xxx is a based variable, which may be an element variable, a structure, or an array, and ppp is the default pointer). Such a variable can be address without an explicit pointer reference (codice_149, or may be addressed with an explicit reference to the default locator (ppp), or to any other pointer (codice_150).


title: Pointer (computer programming)

text: Pointer arithmetic is not part of the PL/I standard, but many compilers allow expressions of the form codice_151. IBM PL/I also has the builtin function codice_152 to perform the arithmetic. Pointer arithmetic is always performed in bytes.


title: Pointer (computer programming)

text: The D programming language is a derivative of C and C++ which fully supports C pointers and C typecasting.


title: Pointer (computer programming)

text: The Eiffel object-oriented language employs value and reference semantics without pointer arithmetic. Nevertheless, pointer classes are provided. They offer pointer arithmetic, typecasting, explicit memory management,


title: Pointer (computer programming)

text: Fortran-90 introduced a strongly typed pointer capability. Fortran pointers contain more than just a simple memory address. They also encapsulate the lower and upper bounds of array dimensions, strides (for example, to support arbitrary array sections), and other metadata. An "association operator", codice_154 is used to associate a codice_140 to a variable which has a codice_156 attribute. The Fortran-90 codice_157 statement may also be used to associate a pointer to a block of memory. For example, the following code might be used to define and create a linked list structure:


title: Pointer (computer programming)

text: Fortran-2003 adds support for procedure pointers. Also, as part of the "C Interoperability" feature, Fortran-2003 supports intrinsic functions for converting C-style pointers into Fortran pointers and back.


title: Pointer (computer programming)

text: Go has pointers. Its declaration syntax is equivalent to that of C, but written the other way around, ending with the type. Unlike C, Go has garbage collection, and disallows pointer arithmetic. Reference types, like in C++, do not exist. Some built-in types, like maps and channels, are boxed (i.e. internally they are pointers to mutable structures), and are initialized using the codice_158 function. In an approach to unified syntax between pointers and non-pointers, the arrow (codice_159) operator has been dropped: the dot operator on a pointer refers to the field or method of the dereferenced object. This, however, only works with 1 level of indirection.


title: Pointer (computer programming)

text: There is no explicit representation of pointers in Java. Instead, more complex data structures like objects and arrays are implemented using references. The language does not provide any explicit pointer manipulation operators. It is still possible for code to attempt to dereference a null reference (null pointer), however, which results in a run-time exception being thrown. The space occupied by unreferenced memory objects is recovered automatically by garbage collection at run-time.


title: Pointer (computer programming)

text: Pointers are implemented very much as in Pascal, as are codice_160 parameters in procedure calls. Modula-2 is even more strongly typed than Pascal, with fewer ways to escape the type system. Some of the variants of Modula-2 (such as Modula-3) include garbage collection.


title: Pointer (computer programming)

text: Much as with Modula-2, pointers are available. There are still fewer ways to evade the type system and so Oberon and its variants are still safer with respect to pointers than Modula-2 or its variants. As with Modula-3, garbage collection is a part of the language specification.


title: Pointer (computer programming)

text: Unlike many languages that feature pointers, standard ISO Pascal only allows pointers to reference dynamically created variables that are anonymous and does not allow them to reference standard static or local variables. It does not have pointer arithmetic. Pointers also must have an associated type and a pointer to one type is not compatible with a pointer to another type (e.g. a pointer to a char is not compatible with a pointer to an integer). This helps eliminate the type security issues inherent with other pointer implementations, particularly those used for PL/I or C. It also removes some risks caused by dangling pointers, but the ability to dynamically let go of referenced space by using the codice_161 standard procedure (which has the same effect as the codice_162 library function found in C) means that the risk of dangling pointers has not been entirely eliminated.


title: Pointer (computer programming)

text: However, in some commercial and open source Pascal (or derivatives) compiler implementations —like Free Pascal, Turbo Pascal or the Object Pascal in Embarcadero Delphi— a pointer is allowed to reference standard static or local variables and can be cast from one pointer type to another. Moreover, pointer arithmetic is unrestricted: adding or subtracting from a pointer moves it by that number of bytes in either direction, but using the codice_163 or codice_164 standard procedures with it moves the pointer by the size of the data type it is "declared" to point to. An untyped pointer is also provided under the name codice_165, which is compatible with other pointer types.


title: Pointer (computer programming)

text: The Perl programming language supports pointers, although rarely used, in the form of the pack and unpack functions. These are intended only for simple interactions with compiled OS libraries. In all other cases, Perl uses references, which are typed and do not allow any form of pointer arithmetic. They are used to construct complex data structures.


title: Discrimination based on skin color

text: Discrimination based on skin color, also known as colorism, or shadeism, is a form of prejudice and/or discrimination in which people who share similar ethnicity traits or perceived race are treated differently based on the social implications that come with the cultural meanings that are attached to skin color.


title: Discrimination based on skin color

text: Research has found extensive evidence of discrimination based on skin color in criminal justice, business, the economy, housing, health care, media, and politics in the United States and Europe. Lighter skin tones are seen as preferable in many countries in Africa, Asia and South America.


title: Discrimination based on skin color

text: Racism affects almost every aspect of people's daily lives. Research shows that people of color are offered fewer opportunities in higher education and employment than white people are offered. Black people are treated more strictly and less politely than white people are treated. As romantic partners, they are considered less desirable and white people are considered more desirable. They also receive compromised medical treatment.


title: Discrimination based on skin color

text: Several meta-analyses find extensive evidence of ethnic and racial discrimination in hiring in the North American and European labor markets. A 2016 meta-analysis of 738 correspondence tests in 43 separate studies done in OECD countries in 1990-2015 finds that there is extensive racial discrimination within both the European and North American hiring process. Equivalent minority candidates need to send around 50% more applications than majority candidates to be invited for an interview. Recent research in the U.S. shows that socioeconomic and health inequality among African Americans along the color-continuum is often similar or even larger in magnitude than what exists between whites and African Americans.


title: Discrimination based on skin color

text: In East, South and Southeast Asia, a preference for lighter skin is prevalent, especially in countries such as China, South Korea, Taiwan, Hong Kong, Vietnam, India, Pakistan, Bangladesh, Philippines, Indonesia, Thailand and Japan.


title: Discrimination based on skin color

text: The history of skin whitening in East Asia dates back to ancient times. In the ancient dynastic eras, to be light in an area where the sun was harsh implied wealth and nobility because those individuals were able to stay indoors while servants had to labor outside. Ancient Asian cultures also associated light skin with feminine beauty. "Jade" white skin in Korea is known to have been the ideal as far back as the Gojoseon era. Japan's Edo period saw the start of a trend of women whitening their faces with rice powder as a "moral duty". Chinese women valued a "milk white" complexion and swallowed powdered pearls towards that end. Four out of ten women surveyed in Hong Kong, Malaysia, the Philippines, and South Korea use a skin whitening cream. In many Asian cultures, colorism is taught to children in the form of fairy tales; just as the Grimms' fairy tales featured light-skinned princesses or maidens, Asian mythological protagonists are typically fair and depict virtue, purity, and goodness . A light complexion is equated with feminine beauty, racial superiority, and power, and continues to have strong influences on marital prospects, employment, status, and income.


title: Discrimination based on skin color

text: Globalized East Asia still retains these biases, but they are compounded by the influence of Westernized beauty ideals and media that equate whiteness with modern and urban wealth and success.


title: Discrimination based on skin color

text: Hiroshi Wagatsuma writes in "Daedalus" that Japanese culture has long associated skin color with other physical characteristics that signify degrees of spiritual refinement or degrees of primitiveness.


title: Discrimination based on skin color

text: The scholar repeats an old Japanese proverb: "white skin makes up for seven defects." More specifically for a woman, very light skin allows people to overlook her lack of other desirable physical characteristics. Skin color influenced and continues to influence people's standards of attractiveness, socioeconomic status and capability.


title: Discrimination based on skin color

text: Westerners have long called East Asians, specifically Chinese and Japanese people, "yellow", but the Chinese and Japanese seldom describe their skin color in that way. The Japanese traditionally used the word "shiroi" – meaning "white" – to describe the lighter shades of skin in their society.


title: Discrimination based on skin color

text: During the Nara period which lasted from 710 to 793 AD, the court ladies of Japan applied a lot of white powder to their faces and added red rosy cheeks. Many references to plump women with white skin appear in drawings and writings from 794 to 1186 AD. In literature, note for example "The Tale of Genji" (written 1000–1012) by Lady Murasaki.


title: Discrimination based on skin color

text: A survey concluded that three quarters of Malaysian men thought their partners would be more attractive if they had lighter skin complexions.


title: Discrimination based on skin color

text: In certain Southeast Asian countries such as Malaysia, a common beauty ideal is the "Eurasian look". Locally known as the "pan-Asian look", in Malaysia, it is an ideal that stems from the beauty ideal of fair skin, which Eurasians tend to naturally possess. The overuse of pan-Asian faces on billboards and on television screens has been a controversial issue in the country. The issue was highlighted in 2009 when Zainuddin Maidin, a Malaysian politician, called for the reduction of pan-Asian faces which he claimed dominate TV and billboards and instead increase the number of Malay, Chinese and Indian faces on local television. Despite the controversy surrounding the preference for Malaysians who are of mixed Asian (Malay, Chinese or Indian) and European descent who possess features such as fair skin, some experts in the industry have said that the use of pan-Asian faces can be used to promote the racial diversity of Malaysians. They can also be used to promote a product towards a diverse racial demographic because of their mixed appearance, which the Minister of Information had suggested in 1993.


title: Discrimination based on skin color

text: The implications of colorism in India have been apparent since the nation's conception. The legacies of Mughal, Northern and European colonial rule on the Indian subcontinent have influenced modern relations between light skin and power dynamics. Multiple studies have concluded that preference for lighter skin in India is historically linked to both the caste system and Persian, Mughal and European rule. Hinduism's influence also must be considered. The Hindu social hierarchy emphasized that those in higher castes typically had lighter skin than those in lower castes. So, they are at an advantage. Colorism in India was also fed by the attitudes of Europeans, who favored lighter-skinned people for administrative positions and other prominent social positions; so power was conceptually intertwined with light skin. Rich Indians often tend to be light-skinned due to less exposure to sun. Also, individuals were judged by their occupation; and being born into a lineage of, say, farmers, would typically make one unable to leave said lineage. Migration between occupations was rare, and though the caste system's legality was altered in 1948, the practice is still common in many parts of the country. As these factors generated the caste system, it grew to include both economic standing and societal positioning. Existing prejudices also influenced European officials. This sentiment remains. Colorism has societal implications, many of which severely harm socioeconomic mobility of darker-skinned Indians. These can play out in gender stereotyping and regional discrimination. Studies of melanin index (MI) in individuals across regions show that there are variations in skin color, which contribute to the level of discrimination darker-skinned individuals face in these respective regions. In India, especially some regions, dark-skinned people are often seen as "dirty" and of lower status than lighter-skinned ones. In Maharashtra state, a group of young tribal girls trained to be flight crew through a government scholarship program that aimed to empower women; however, the program seems to have actually disempowered darker-skinned women. Most of the girls were denied employment due to their darker skin tone. A few of them got jobs, but only as out-of-sight ground crew. This inherent racism further fuels the notion that light skin is often associated with improved living conditions and a higher standard of living. This notion typically affects Indian women more than men; this notion is backed by gender rights in India, which are not very progressive and they often harm upward mobility of individuals in professional settings and impose restrictions on their social lives based on their gender. This is a case where two cleavages fuel one another (see Intersectionality). Men with darker skin often can, in a societally-accepted manner, marry women with lighter skin. But darker women do not have the same privileges as darker men; largely due to the patriarchal institutions that riddle India to this day.


title: Discrimination based on skin color

text: Other forms of colorism in India can be seen in the cosmetic industry, where "fairness" creams meant to lighten skin are popular, and in the Indian film and media industry, where most hires are light-skinned, and actresses are often photoshopped to look lighter. Skin lightening is shown to have significant detrimental effects on both mental and physical health, especially for women, who are more heavily burdened by men in relation to this issue. It is a burden on one's mental health in a societal setting; users of skin creams, on average, remain dissatisfied with their complexion even after using the product. Unregulated products can contain harmful chemicals which can cause dermatitis, chemical burns, and in severe cases, increase the likelihood of skin cancer and melanoma. As these mechanisms interplay with the presence of existent capitalistic institutions that control much of today's world, it is no secret that the skin-lightening industry benefits this system through the exploitation of vulnerable individuals.


title: Discrimination based on skin color

text: In the wake of the murder of George Floyd that led to protests worldwide, the debate about colorism and skin tone in India has been discussed in several media outlets, and as part of the general critique a big Indian matchmaking website, Shaadi.com, removed a filter where one could mark skin color preferences for their potential partner. Outside of India, dark-skinned individuals and immigrants are typically treated with the same low level of social respect and acceptance, similar to experiences they endure within their country.


title: Discrimination based on skin color

text: Pakistanis are largely known for their susceptibility to colorism. It is considered extremely normal to use skin whitening creams because they are very popular among the people of Pakistan, they are especially popular among Pakistani women. The media is a major influence on how they view themselves and they have learned to favor lighter skin over darker skin. After being exposed to constant ads for skin whitening creams (such as Fair and Lovely), and after seeing Bollywood actors with light skin being portrayed as good role models and after seeing dark skinned actors being portrayed as poor role models, many people from Pakistan have been heavily affected into achieving a fair complexion, which includes staying out of the sunlight as much as possible.The popular YouTube web series, "Conversations with Kanwal", produced by Kanwal Ahmed, covered colorism and its effect on women and their marital prospects in season 1, episode 7.